2009-10-24 9 views

Odpowiedz

36

Footprint wyznacza wielkość zajmowanej przez aplikację w pamięci RAM komputera.

Ślad może mieć różne znaczenie, gdy mówimy o zużyciu pamięci. Z mojego doświadczenia wynika, że ​​ślad pamięci często nie uwzględnia pamięci przydzielonej do sterty (pamięci dynamicznej) lub zasobu załadowanego z dysku itp. Dzieje się tak dlatego, że alokacje dynamiczne nie są stałe i mogą się różnić w zależności od sposobu użycia aplikacji lub modułu. Zgłaszając "niską powierzchnię" lub "wysoki ślad", zwykle wymagana jest stała lub najwyższa miara wymaganej przestrzeni.

Jeśli na przykład zawiera pamięć dynamiczną w raporcie śladu edytora obrazów, ślad będzie całkowicie zależny od rozmiaru obrazu załadowanego do aplikacji przez użytkownika.

W kontekście biblioteki osób trzecich autor biblioteki może zoptymalizować statyczny rozmiar pamięci biblioteki, upewniając się, że nigdy nie łączysz więcej kodu z plikiem binarnym aplikacji niż jest to absolutnie konieczne. Typową metodą używaną w tym celu na przykład w C jest dystrybucja funkcji bibliotecznych w celu oddzielenia plików c. Wynika to z faktu, że większość łączników C będzie łączyć cały kod z pliku c do aplikacji, a nie tylko wywoływaną funkcję. Więc jeśli umieścisz pojedynczą funkcję w pliku c, to cały linker będzie dołączany do twojej aplikacji podczas jej wywoływania. Jeśli umieścisz pięć funkcji w pliku c, linker prawdopodobnie połączy wszystkie z nich w twoją aplikację, nawet jeśli użyjesz tylko jednego z nich.

Wszystko to jest powiedziane, ogólna (akademicka) definicja śladu obejmuje wszystkie rodzaje aspektów pamięci/przechowywania.

1

tak, zasoby, takie jak pamięć lub dysk

2

Dotyczy zasobów. Szczególnie pamięć. Wymaga mniejszej ilości pamięci podczas pracy.

4

Generalnie jest to ilość pamięci, którą zajmuje - "ślad" pozostawia w pamięci podczas pracy. Jednak może również odnosić się do ilości zajmowanej przez nie miejsca na dysku twardym - chociaż te dni to mniejszy problem.

Jeśli piszesz aplikację i masz ograniczenia pamięci, możesz rozważyć uruchomienie profilera, aby śledzić, ile używa twój program.

6

z Wikipedii Memory footprint artykułu:

ślad pamięci odnosi się do ilości pamięci głównej, który program wykorzystuje lub odniesienia podczas jazdy.

Obejmuje to wszystkie rodzaje aktywnych regionów pamięci, takich jak segment kodu zawierający (głównie) instrukcje programu (i czasami stałe), segment danych (zarówno zainicjowany i niezainicjowany), pamięć sterty, stos wywołań, a także pamięć wymaganą do przechowywania jakichkolwiek dodatkowych danych struktury, takie jak tabele symboli, debugowanie struktur danych, otwarte pliki, współużytkowane biblioteki odwzorowane na bieżący proces itp., których program kiedykolwiek potrzebuje podczas wykonywania i które będą ładowane co najmniej raz podczas całego przebiegu.