Aby przydzielić region pamięci w sterty dalvik, aplikacje używają dlmalloc, zamiast normalnego malloc, dlaczego dlmalloc jest używany i jak różni się od malloc. (Jak już wiem, za przydzielenie sterty dalvik podczas tworzenia dalvik VM, stosuje się malloc).Różnica między malloc a dlmalloc
Odpowiedz
Bit wyższego rzędu polegał na tym, że Dalvik potrzebował bazowego przydziału, który był oddzielny od domyślnego sterty zarządzanego przez malloc, więc może mieć odpowiedni rodzaj kontroli nad tym, jak doszło do alokacji, wiedząc, że inne podsystemy nie będą zakłócać działania.
Jak się okazało, dlmalloc był dość dojrzałą istniejącą biblioteką, która zapewniała izolację i haki, których potrzebowaliśmy. Intencją (do momentu, kiedy opuściłem zespół) było to, że w końcu zastąpiliśmy to czymś bardziej wymyślonym, ale nigdy nie stało się to wystarczająco pilną kwestią, aby podjąć ten konkretny krok.
Co do szczegółowych różnic między dlmalloc i malloc: dlmalloc jest specyficzną implementacją tradycyjnego API mallc libc, podczas gdy "malloc" per se nie jest specyficzne dla konkretnej implementacji. Ale nawet jeśli masz konkretne, wątpię, czy mógłbym zasugerować coś więcej niż "przeczytać kod".
Świetna odpowiedź, zastanawiasz się, czy możesz coś wyjaśnić - czy dlmalloc jest używany jako * the * malloc na Androidzie, utrzymujący oddzielne pule w każdym procesie dla zwykłego użycia i dla dalvik, czy też dalvik używa dlmalloc, podczas gdy inne wywołania malloc (w jni lib lub cokolwiek) kończy się na używaniu czegoś innego? –
- 1. Różnica między LIST_HEAD_INIT a INIT_LIST_HEAD
- 2. Różnica między obiektem a *?
- 3. Różnica między jquery a $
- 4. Różnica między zadeklarowanym ciągiem a przydzielonym łańcuchem
- 5. Różnica między tablicą znaków a wskaźnikiem
- 6. Różnica między String [] a i String ... a
- 7. Różnica między bip pid a $$
- 8. Różnica między kodowaniem a sortowaniem?
- 9. Różnica między onbeforeunload a onunload
- 10. Różnica między OpenCV a OpenCL
- 11. Różnica między wysokością a tłumaczeniemZ
- 12. Różnica między ApplicationInfo a PackageInfo?
- 13. Różnica między CMAKE_PROJECT_NAME a PROJECT_NAME?
- 14. Różnica między autoconf a autoreconf
- 15. Różnica między transakcją a transakcjąScope
- 16. Różnica między File.Copy a File.Move
- 17. Różnica między _declspec a __declspec?
- 18. Różnica między repozytorium a usługą?
- 19. Różnica między CCNode a CCLayer?
- 20. różnica między * y ++ a ++ * y?
- 21. Różnica między IPFS a Filecoin?
- 22. Różnica między systemem a shell_exec
- 23. Różnica między Redis a kafka
- 24. Różnica między dodawaniem a dodawaniem
- 25. Różnica między DisplayFor a ValueFor
- 26. Różnica między @EntityScan a @ComponentScan
- 27. Różnica między DataSource a DataSet
- 28. Różnica między GetHostEntry a GetHostByName?
- 29. Różnica między Object.getPrototypeOf a __proto__
- 30. Różnica między CHOICE_MODE_MULTIPLE a CHOICE_MODE_MULTIPLE_MODAL?
Czy przeczytałeś [artykuł wikipedii o alokacji pamięci] (http://en.wikipedia.org/wiki/C_dynamic_memory_all_ococation) i jego sekcji na temat dlmalloc? – gfour