-
1. Data: 2017-12-04 08:05:18
Temat: Windows - alokowanie pamięci.
Od: "Andrzej W." <a...@w...pl>
Cześć,
Nie jestem programistą i proszę o wyrozumiałość przy tym banalnym pytaniu.
Jak pod Windows zaalokować pamięć tak by od razu, bez jej używania,
została ona odjęta od tego co pokazuje GetPerformanceInfo w
PhysicalAvailable?
Obecnie alokuje pamięć za pomocą VirtualAlloc - MEM_COMMIT|MEM_RESERVE i
czytam po bajcie z każdej strony.
--
AWa.
-
2. Data: 2017-12-04 13:29:24
Temat: Re: Windows - alokowanie pamięci.
Od: s...@g...com
> Nie jestem programistą i proszę o wyrozumiałość przy tym banalnym pytaniu.
Ok. Pytanie pomocnicze: Jaki język?!?
> Jak pod Windows zaalokować pamięć tak by od razu, bez jej używania,
> została ona odjęta od tego co pokazuje GetPerformanceInfo w
> PhysicalAvailable?
W C++ operator new, np:
char* lZmienna = new char[ROZMIAR];
> Obecnie alokuje pamięć za pomocą VirtualAlloc - MEM_COMMIT|MEM_RESERVE i
> czytam po bajcie z każdej strony.
No i co to daje?!?
-
3. Data: 2017-12-04 17:47:11
Temat: Re: Windows - alokowanie pamięci.
Od: bartekltg <b...@g...com>
On Monday, December 4, 2017 at 1:29:26 PM UTC+1, s...@g...com wrote:
> > Nie jestem programistą i proszę o wyrozumiałość przy tym banalnym pytaniu.
>
> Ok. Pytanie pomocnicze: Jaki język?!?
>
> > Jak pod Windows zaalokować pamięć tak by od razu, bez jej używania,
> > została ona odjęta od tego co pokazuje GetPerformanceInfo w
> > PhysicalAvailable?
>
> W C++ operator new, np:
> char* lZmienna = new char[ROZMIAR];
Pewien jesteś, że jak ROZMIAR to dużo i nie dotkniesz wszstykich stron,
to one będą rzeczywiście zarezerowowane w pamięci fizycznej?
Wydaje mi się, że windows też przydziela strony leniwie, gdy są potrzebne.
> > Obecnie alokuje pamięć za pomocą VirtualAlloc - MEM_COMMIT|MEM_RESERVE i
> > czytam po bajcie z każdej strony.
>
> No i co to daje?!?
OS ruszy tyłek i rzeczywiście da tę pamięć.
BTW, czytanie może nie wysatrczyć, można dostać zero a pamięć
nadal tylko wirtualnie przydzielona (zależy od OS i zodiaku)
pzdr
bartekltg
-
4. Data: 2017-12-04 20:37:02
Temat: Re: Windows - alokowanie pamięci.
Od: "Andrzej W." <awa_wp@na_wp_oczywiscie.pl>
W dniu 2017-12-04 o 17:47, bartekltg pisze:
> BTW, czytanie może nie wysatrczyć, można dostać zero a pamięć
> nadal tylko wirtualnie przydzielona (zależy od OS i zodiaku)
W wypadku W10 odczyt wystarczył.
Ale masz rację MEM_COMMIT gwarantuje, że pamięć jest zerowana więc sam
odczyt teoretycznie nie zmusza systemu do przydzielenia dla tej zmiennej
jakiejkolwiek pamięci fizycznej.
--
AWa.
-
5. Data: 2017-12-04 22:26:21
Temat: Re: Windows - alokowanie pamięci.
Od: "AK" <n...@n...net>
Użytkownik "Andrzej W." <awa_wp@na_wp_oczywiscie.pl> napisał:
>W dniu 2017-12-04 o 17:47, bartekltg pisze:
>> BTW, czytanie może nie wysatrczyć, można dostać zero a pamięć
>> nadal tylko wirtualnie przydzielona (zależy od OS i zodiaku)
>
> W wypadku W10 odczyt wystarczył.
> Ale masz rację MEM_COMMIT gwarantuje, że pamięć jest zerowana więc sam odczyt
teoretycznie nie
> zmusza systemu do przydzielenia dla tej zmiennej jakiejkolwiek pamięci fizycznej.
...a nie wystarczy/pomoze "standardowe" sbrk() ?
AK