32-bitowe użycie pamięci aplikacji w 64-bitowym systemie Windows 7

1

Mam MacBook Pro z początku 2012 r. Z procesorem Intel i7 i 16 gigabajtami pamięci RAM z systemem Windows 7 Professional w wersji 64-bitowej za pośrednictwem Bootcamp. Pracuję w Geographic Information Systems (GIS) jako programista, więc większość aplikacji, które uruchamiam, to aplikacje 32-bitowe, ale zwykle zużywa wiele zasobów (tj. ArcGIS, SQL Server Express, Visual Studio itp.).

Zauważyłem, że gdy mam wiele wystąpień tej samej 32-bitowej aplikacji lub różnych 32-bitowych aplikacji i wszystkie one pracują nad dużymi zadaniami przetwarzania, wciąż mam do czynienia z około 30% zużyciem pamięci.

Rozumiem, że aplikacje 32-bitowe są ograniczone do mniej niż 4 GB pamięci RAM, ale założyłem, że jedno wystąpienie może używać własnego 4 GB, podczas gdy inne wystąpienie może używać innego 4 GB, aby w pełni wykorzystać całą zainstalowaną pamięć.

Czy ktoś może wyjaśnić, jak to działa i jak mogę zmusić moje aplikacje do korzystania z całej pamięci przez uruchamianie wielu instancji?

Brian
źródło
1
Nie będziesz w stanie tego zmusić. Gdyby Windows musiał użyć pamięci, zrobiłby to.
Ramhound
Mówisz o przekodowaniu aplikacji w celu wykorzystania większej ilości pamięci RAM, czy po prostu zastanawiasz się, dlaczego nie zużywają całej dostępnej pamięci RAM?
RockPaperLizard,

Odpowiedzi:

2

Aplikacje, zarówno 32-bitowe, jak i 64-bitowe (itp.), Będą wykorzystywać tylko tyle pamięci, ile potrzebuje. Nic dodać nic ująć. Jeśli nie potrzebuje 4 GB pamięci RAM, nie użyje 4 GB pamięci RAM.

Istnieje popularne nieporozumienie, że 64-bitowe aplikacje używają dwa razy więcej pamięci RAM niż aplikacje 32-bitowe. To nie jest prawda

„Bit” przypisany do aplikacji określa po prostu, do jakiej wirtualnej przestrzeni adresowej może uzyskać dostęp . Różni się to od tego, ile pamięci RAM potrzebuje do dobrej wydajności.

Aplikacje nie będą działały lepiej, gdy dostępna będzie nadwyżka pamięci. Aplikacja, która wykorzystuje 32 MB pamięci RAM, teoretycznie działa w ten sam sposób w systemie z dostępnym 1 GB pamięci lub w systemie z dostępnym 16 GB pamięci; bez względu na rozmiar bitów.

Subaru Tashiro
źródło
3
64-bitowa wersja aplikacji może zużywać więcej pamięci niż jej 32-bitowa wersja, ponieważ wskaźniki są dwa razy większe. To, czy jest to znaczna ilość, zależy od zastosowania. Zwykle tak nie jest.
martineau,
Ach tak, to prawda. Ale nie byłem pewien, jak wytłumaczyć wskaźniki komuś, kto może nie wiedzieć o tym. Zamiast tego zawarłem słowo „teoretycznie”. Jeśli możesz to zrobić po prostu, możesz edytować moją odpowiedź, aby dołączyć ten bit. Może jeszcze bardziej pomóc ludziom.
Subaru Tashiro
1
Co powiesz na: Wskaźnik to adres pamięci, a wskaźnik 64-bitowy zajmuje dwa razy więcej bajtów pamięci, aby zapisać jeden, niż wskaźnik 32-bitowy.
martineau,
1
To prawda, ale nie jest tak, że każdy element danych, na którym działa program, jest wskaźnikiem. W rzeczywistości MS podjął świadomą decyzję, że INT i LONG pozostaną na 32 bitach w środowisku 64-bitowym. Jeśli programista chce użyć 64-bitowych liczb całkowitych, istnieją specyficzne typy danych, o które należy zapytać, ale INT i LONG, których używamy od NT 3.1, mają 32 bity.
Jamie Hanrahan
Oto doskonały artykuł na temat 32-bitowych i 64-bitowych przeglądarek internetowych: ghacks.net/2016/01/03/... Jak widać, w tym momencie 64-bitowe wersje kilku przeglądarek zużywają znacznie więcej pamięci RAM niż ich 32-bitowe odpowiedniki.
RockPaperLizard