Chyba při překročení paměti 2 GB u procesu

Od: Datum: 06.06.13 00:17 odpovědí: 6 změna: 06.06.13 09:06

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


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 06.06.13 00:29
avatar

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.

Ohodnoceno: 2x
 
Od: honza51
Datum: 06.06.13 01:01

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.

Od: mowla*
Datum: 06.06.13 00:37

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

Ohodnoceno: 3x
 
Od: honza51
Datum: 06.06.13 01:09

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.

Od: mowla*
Datum: 06.06.13 01:27

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.

Ohodnoceno: 0x
 
Datum: 06.06.13 09:06
avatar

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 http://support.microsoft.com/kb/294418

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.

Ohodnoceno: 0x
 

 

 

 

 

Přihlásit se k odběru odpovědí z této otázky:

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

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.