Nejste přihlášen/a.
Zdravím
Překročemí paměti 2 GB RAM v celkovém běhu PC není problém, ale když při běhu programu jeden proces zabere více než 2 GB operační paměti, nastane systémová chyba a proces spadne. Je nějaká cesta, jak se tomu vyhnout, nebo omezení 2 GB je pro všechny Windows 32 bit (používám win XP)? Je použití 64-bit systému řešení?
Honza
Pokud vím*), mají 32 bit Win omezení 2 GB/proces**). Pokud bys použil Win x64, je toto omezení 4GB/proces.
*) 100% to platí pro WinXP a Vista, ale nevidím důvod, proč by tomu u Win7 či Win8 mělo být jinak.
**) je možné, v případě použití PAE, adresovat až 3GB, ale jednak musí být programy s tímto být kompilovány a druhak to nese i nevýhody
To bude ono, proč to padá bez ohledu na aplikaci. I ty 4 GB u 64 bit win mohou být v některých věcech problém. Není to omezení spíš 2^32 signed, což by znamenalo od -2 GiB do +2 GiB (2 GiB = 2^31 B (unsigned by bylo do 4 GiB) u 32-bit win, ale u 64-bit win by to mohlo být 2^64 resp. 2^63 B a to se jen tak nepřekročí. Ale to byl jen tip, protože to jsou rozsahy integer v pascalu. 2 GiB resp. 4 GiB jsou limity ne velikosti souborů v ISO resp. FAT file system (je to 2^31 B resp. 2^32 B). U NTFS je tento limit 2^64 B. Ale s procesy u 64-bit win nemam skušenost, jen mě to napadlo.
Je to omezení dané OS, nesouvisí přímo s max. možností adresace. A pokud píšeš nějakou aplikaci pro obecné použití, musíš dát pozor ještě na další omezení Win (zejména verzí Starter) tam je max. 1 GB/proces..., mám dojem, že u WinXP Starter (nebo jak se jmenovala, nyní už se neprodává) je to omezení dokonce na jen 512 MB/proces.
Co na tom provozuješ střih videa, CAD,...? Co máš za desku 32bit podporujou do 3GB. Jestli je to nějaký náročný program, tak se koukni na minimální konfiguraci PC pro běh programu a pokud to budeš splnovat, tak se kouknout po update či patch (záplatě) která tento problém řeší na stánce programu či diskuzích k programu.
Nejčastěji databáze/datový sobor se větším počtem dat, tvoření panorama, problém je i u tvoření obrazu disku při vězším počtu souborů - vyšplhá se nad 2 GB proces ve vyjímečných případech. U velkých obrázků je limit jiný - BMP data a místo v ram (šířka x výška x barevná hloubka) max. 400 MB. Limit 2 GB je skutečně na jeden proces (ne aplikaci). Velikost paměti zabrané systémem i velikost fyzické ram není tako omezena.
Mohlo by se dát zvednout limit na 3GB na proces, pokud tedy alespoň ty 3GB máte a pokud takovéhle úpravy za to stojí. Viz support.microsoft.com/...
Každopádně nechápu, proč všechny programy rovnou padají, copak si nekontrolujou alokovanou paměť? Dalo by se to pochopit v linuxu, kde to funguje jiným způsobem, ale ve windows se paměť přiděluje přímo a okamžitě. Tvořím image disku, přidávám soubor -> řeknu si o paměť -> žádnou nedostanu -> vypíšu chybu, soubor nepřidám, nechám to uživatele opravit.
Jinak ten limit není ani celé 2GB, je to 1.9něco. Na 64bit je limit až v řádu TB, tedy za předpokladu, že to máte kam odkládat na disk.
Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.
Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.