loading...
Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Hlas lidu-hlas Boží. Přesto bych ale prosil o vysvětlení následující skutečnosti: Provedu defragmen…
Paullus 08.01.2007 18:10
Paullus
Uz jsem to popisoval. Nedojde k uvolneni pameti, pouze k presunu obsahu fyzicke pameti do swapu + uv… nový
Jan Fiala 09.01.2007 07:13
Jan Fiala
A co kdyz ten program funguje nekorektne a pri ukonceni pamet neuvolni ? Na win 9x jsem pouzival RA… nový
Redmarx N 09.01.2007 10:28
Redmarx N
Když program skončí nekorektně (nebo něco chybou programátora neuvolní), Windows rodiny NT (NT, 2K,… nový
Rce 09.01.2007 11:58
Rce
Bavme se o WinNT based systemech (WinXP) Chovani, zda se DLL knihovny budou nebo nebudou uvolnovat,… nový
Jan Fiala 09.01.2007 12:10
Jan Fiala
Bavme se o WinNT based systemech (WinXP) Chovani, zda se DLL knihovny budou nebo nebudou uvolnovat,… nový
jarbar 09.01.2007 16:50
jarbar
Microsoft to sice pise, ale ja bych tomu neveril. Existuje mnoho rad, ktere to doporucuji i na aktua… nový
Jan Fiala 09.01.2007 19:13
Jan Fiala
V dobách Win95 jsem si chválil MagnaRAM (pamatuje někdo?). Umělo to komprimovat data v operační pamě…
Pavel 08.01.2007 18:18
Pavel
Pamatuju, este bych to nekde mozna vyhrabal. Este byl od Quarterdecku peknej memory manager (QEMM386… nový
kubik 09.01.2007 13:57
kubik
Ten ho neuvolnil, ale vůbec zpřístupnil. Byl to emulátor EMM a používal se místo HIMEM.SYS + EMM386.… nový
Rce 09.01.2007 14:03
Rce
Po všech zkušenostech s různými uvolňovači RAM je jednoznačně nejlepší restart kompu, pomůže dokoupi… poslední
Fuente 09.01.2007 19:17
Fuente

Hlas lidu-hlas Boží. Přesto bych ale prosil o vysvětlení následující skutečnosti:

Provedu defragmentaci paměti a např. v ProcessExploreru vidím na konkrétních hodnotách, že se mi skutečně nikoli bezvýznamná část paměti uvolnila.
Je pravdou, že v tu chvíli se mi znatelně sníží výkon PC, zřejmě kvůli svrchu řečenému swapování. Po chvíli se ale počítač vrátí k původnímu výkonu, ovšem hodnoty volné paměti jsou znatelně vyšší, než tomu bylo před defragmentací.

Navíc se mi nezdá, že by si tak velké množství firem dovolilo dělat takovéto SW placebo.

Uz jsem to popisoval. Nedojde k uvolneni pameti, pouze k presunu obsahu fyzicke pameti do swapu + uvolneni DLL knihoven.
Normalne to funguje tak (z pohledu systemu):
- dokud mam dostatek pameti, budu ji vyuzivat a nebudu zbytecne pouzivat odkladaci prostor na disku
- jakmile mi zacne fyzicka pamet dochazet, uvolnim si i tim, ze odlozim veci, ke kterym se uz delsi dobu nepristupovalo do odkladaciho prostoru
- sdilene DLL knihovny necham v pameti, protoze by je mohly vyuzivat i dalsi aplikace. Tim zrychlim jejich beh, protoze je nebudu muset hledat na disku a natahovat.
- pokud mi zacne dochazet pamet, uvolnim DLL knihovny, ke kterym uz jsem dlouho nepristupoval

Defragmentator udela to, ze vynuti odlozeni obsahu RAM do odkladaciho prostoru a uvolni DLL knihovny. Takze opticky udela to, ze ti uvolni pamet, ale v podstate nedela nic jineho nez sam operacni system.

Na Windows 98 sdilely aplikace pamet spolecne. Mohlo dochazet k jeji fragmentaci a postupnemu obsazovani aplikacemi, ktere neuvolnovaly, co si alokovaly. Tady ty programy mely smysl.
Na Windows NT (W2k, WinXP) ma kazda aplikace pridelen svuj vlastni pametovy prostor. Pri jejim ukonceni dojde k jeho uvolneni, mimo sdilene DLL knihovny.

A co kdyz ten program funguje nekorektne a pri ukonceni pamet neuvolni ?

Na win 9x jsem pouzival RAMIdle a tam ty programy meli velky smysl, presne jak pises.

Na win XP pouzivam MemTurbo. To co pisete je pravda, ale fakt je, ze s MemTurbo se mi system zrychli, vidim to tak, ze ne vsechno, co to odhodi "pod stul" potrebuju.

Zkousel jsem tich programu vic a kazdej se chova jinak.

Když program skončí nekorektně (nebo něco chybou programátora neuvolní), Windows rodiny NT (NT, 2K, XP) by měly všechno uvolnit při likvidaci procesu, Win 9x neuvolní nic. Když se ale po programu neuvolní paměť systémem, nikdo nezjistí, že je ta paměť k ničemu a zůstane trvale zablokovaná až do skonání světa - teda do restartu.

Bavme se o WinNT based systemech (WinXP)
Chovani, zda se DLL knihovny budou nebo nebudou uvolnovat, jakmile nejsou treba se da nastavit v registrech.

Standardni alokovane veci (objekty, promenne, apod.) jsou pri ukonceni programu uvolneny, i kdyz je neuvolni sam program. Problem muze byt se zamky globalnich objektu pomoci API. I tyto veci by se "mely" uvolnit pri ukonceni programu.

Programy typu RamTurbo mohou delat dalsi vec - pri startovani programu mu nastavit vyssi prioritu, takze program nabehne rychleji, naopak snizovat prioritu programu na pozadi atd. To vzbudi predstavu, ze vse je rychlejsi, ale muze to mit spatny vliv na programy - nestabilita pri startu, chyby pri inicializaci apod.

Bavme se o WinNT based systemech (WinXP)
Chovani, zda se DLL knihovny budou nebo nebudou uvolnovat, jakmile nejsou treba se da nastavit v registrech.

Pokud se nepletu, tak toto bylo možné ve starších verzích Windows. Počínaje W2000 již klíč v registrech "AlwaysUnloadDll" není podporován. O uvolnění dll se stará OS.

V dobách Win95 jsem si chválil MagnaRAM (pamatuje někdo?). Umělo to komprimovat data v operační paměti tak, že se PC choval, jako by měl (fyzické) paměti víc. Tam to mohlo (a já myslím, že mělo) smysl. Od dob WinNT a následovníků bych se v tom osobně nehrabal.

Pavel

Zpět do poradny Odpovědět na původní otázku Nahoru

loading...