Jakie są korzyści wynikające z posiadania dwóch sekcji - .data i .bss dla zmiennych zakresu procesu. Dlaczego po prostu nie mieć? Wiem, do czego służy każda sekcja. Używam gcc.Jaka jest zaleta posiadania sekcji .bss?
6
A
Odpowiedz
7
.bss zużywa "pamięć", ale nie zajmuje miejsca w pliku wykonywalnym. Jego jedynym celem jest przechowywanie danych z zerowej ilości danych (jak wiesz).
.data (i powiązane sekcje takie jak rodata) faktycznie zajmują miejsce w pliku wykonywalnym i zwykle przechowuje ciągi, liczby całkowite, a nawet całe obiekty.
W typowym programie znajduje się wiele danych zainicjowanych zerowo, więc posiadanie danych nie zużywa dodatkowego miejsca w pliku wyjściowym jest znaczącą premią.
Jeśli chodzi o wiele. * Sekcje danych ... .rodata/.data mogą być użyte jako wskazówka dla ochrony pamięci (nie zezwalaj na nadpisywanie .rodata, zezwól na odczyt/zapis do .data).
Powiązane problemy
- 1. Jaka jest zaleta "wyrażeń lambda"?
- 2. Jaka jest zaleta git lfs?
- 3. Jaka jest przewaga posiadania 8-literowego procesu?
- 4. Jaka jest zaleta multimapy nad mapą wektorów?
- 5. Jaka jest prawdziwa zaleta parametru typu upstream?
- 6. Jaka jest zaleta UnityContainer.Resolve nad Activator.CreateInstance?
- 7. Jaka jest zaleta WSDualHttpBinding w WCF?
- 8. Jaka jest zaleta Monitor.Enter (obiekt, ref bool) nad Monitor.Enter (obiekt)?
- 9. Jaka jest zaleta korzystania z przestrzeni nad widokiem
- 10. Jaka jest zaleta korzystania z epoll_create1() zamiast epoll_create()
- 11. Jaka jest zaleta \ n i PHP_EOL w PHP?
- 12. Jaka jest zaleta korzystania z asynchronicznych kontrolerów w asp.net mvc?
- 13. jaka jest zaleta wiązania z `undefined` zamiast` null`
- 14. Jaka jest zaleta korzystania z API Python Virtualbox?
- 15. Jaka jest zaleta korzystania z opcji Restangular over ngResource?
- 16. Jaka jest zaleta rozumienia list przez pętlę for?
- 17. Zaleta wydajności MySQL Enum?
- 18. Motywacja posiadania zależności funkcjonalnych
- 19. 28 dodatkowych bajtów w bss
- 20. metoda ukrywania wC# z prawidłowym przykładem. dlaczego jest wdrażany w ramach? jaka jest zaleta świata rzeczywistego?
- 21. Zaleta korzystania z Object.create
- 22. Jaki jest pożytek z posiadania? w java
- 23. Jaka jest zaleta modelu pudełkowego W3C w porównaniu z modelem pudełkowym IE5?
- 24. Jaka jest zaleta korzystania z przenośnych bibliotek klasowych zamiast korzystania z funkcji "Dodaj jako łącze"?
- 25. Jaka jest zaleta GC środowiska wykonawczego w porównaniu z protokołem ARC w czasie kompilacji?
- 26. Jaka jest zaleta korzystania z uniwersalnych referencji w pętlach opartych na zasięgu?
- 27. Jaka jest zaleta korzystania z metody web API przez WWW w ASP.NET
- 28. Jaka jest zaleta tworzenia przeliczalnego obiektu przy użyciu to_enum w Ruby?
- 29. Jaka jest zaleta korzystania z submodułów git zamiast repo w innym repo z gitignore?
- 30. Jaka jest zaleta korzystania z JAXP zamiast DOM/SAX bezpośrednio w Javie?
Czy możesz podać kilka przykładów? Widok pamięci, instrukcje asm itp. – Bruce
@Bruce: w czasie wykonywania zasadniczo nie ma różnicy między .data i .bss. Różnica polega na wyjściu łącznika (jedna sekcja istnieje na dysku, a druga nie) oraz na tym, jak program ładujący wykonuje ładowanie sekcji. .data jest kopią - program ładujący może używać memcpy ... .bss jest wyzerowany - program ładujący może użyć elementu memset. –