Správce úloh - využití paměti – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Správce úloh - využití paměti – C / C++ – Fórum – Programujte.comSprávce úloh - využití paměti – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
hoacin0
Newbie
9. 10. 2013   #1
-
0
-

Ahoj,

pomocí funkce malloc jsem alokoval po malých blocích 18GB, aniž by cokoliv z toho vrátilo NULL a správce úloh windows říká, že můj program používá 950MB paměti (jedu na x64 s 32GB RAM). Jak je to možné, musím před zájmem o alokování takového místa volat ještě jiné funkce kvůli oprávněním, nebo to alokovat s pomocí HeapAlloc nebo VirtualAlloc? Ptám se i proto, že mám systémové SSD a že ten poslední a dosti drahý vydržel půl roku. Kdyby mi systém používal pro tahle data SSD jako operační paměť, tak si můžu za měsíc koupit novej disk   Můžete mi prosím napsat, jak to všechno funguje a případně co dělám špatně?

Díky

Nahlásit jako SPAM
IP: 88.100.48.–
Řešení
KIIV
~ Moderátor
+43
God of flame
9. 10. 2013   #2
-
0
-
Vyřešeno Nejlepší odpověď

a zapisujes do ty pameti neco nebo jen proste alokujes?

ona se totiz muze zabrat az kdyz ji opravdu zacnes pouzivat

EDIT: + u SSD je velice zadouci vypnout virtualni pamet.. obzvlaste kdyz mas tolik ramky...

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hoacin0
Newbie
9. 10. 2013   #3
-
0
-

#2 KIIV
Přesnou analýzu využití těch dat nemám, ale očekávám, že ten 1GB, co to ukazuje, je ta paměť, která se tam už nějak mele (vždycky jsem měl pocit, že to používá cca 2x víc, ale ničím nějak extra podložený) a zbylých 17GB je nová funkce, kde jsem to zatím jen alokoval. Zkusím to smáznout na nuly a uvidím, v každým případě malloc je správná funkce, ne? A o to, že by se to cpalo na disk, se bojím asi zbytečně, že? Protože to jsou data na kterých pojedou mezivýpočty a při životnosti buňky SSD by to ten disk mohlo odpálit za půl hodiny...   Vůbec jsem nevěděl, že to systém nemusí alokovat v momentě vytváření toho bloku, to mi dost uniká, jak to může fungovat, stejně tam nic nesmí napsat  To si zjišťuje, který ukazatel těm datům náleží, a až při při prvním zápisu do toho intervalu to alokuje?

Nahlásit jako SPAM
IP: 88.100.48.–
hoacin0
Newbie
9. 10. 2013   #4
-
0
-

#2 KIIV
Vyřešeno   Vynuloval jsem to hned po alokování a už to ukazuje normálně. A ještě dík za radu k vypnutí virtuální paměti, já jak programuju tyhle věci, tak se vždycky úplně děsím, že kdybych se někde začal vrtat v cyklu do disku, že je konec... Hned se budu cítit trochu líp ohledně mýho SSD.

Nahlásit jako SPAM
IP: 88.100.48.–
KIIV
~ Moderátor
+43
God of flame
9. 10. 2013   #5
-
0
-

ono windowsy na ssd... to je jedna radost... furt samy zapisy, neaktivni programy to haze na swap a tak (resp xp to delaly na 100% - stahovali dva lidi z ftp kolem 1MB/s kazdej a firefox schovanej na listu... pak se kliklo na firefox a cekalo se 2 minuty nez nabehl... a to byl asi 1GB ram volnej)

linux je v tom nejlepsi - rozbeha se ssd jako ro filesystem a /tmp se hodi jako ramfs a logy se muzou dat na normalni disk nebo

(a i tak to pouziva swap jen kdyz uz neni zadny misto v ram - resp da se to nastavit ale defaultne je to vcelku v pohode)

Nahlásit jako SPAM
IP: 213.220.241.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Ovrscout
~ Anonymní uživatel
113 příspěvků
10. 10. 2013   #6
-
0
-

#1 hoacin

Zobrazit pamět kterou nějaký programem je trošku problém, protože existuje více ůhlů pohledu na to co je využitá paměť . Pohybuje se to od "přidělený adresový prostor" což je to co se rozšiřuje alokací, až do "aktuálně využívaná a namapovaná paměť" což by mnělo být to co program aktuálně využívá a není to  odloženo do souboru virtuální paměti.  (zjednodušené a asi né moc přesné)

V správci procesů máš pravděpodobně zobrazenu jen "používanou" paměť. Pro zobrazení "alokované" paměti je třeba ve správci procesů přidat další sloupec. V různých windows se to jmenuje různě, např pracovní sada, virtuální paměť atp. Mělo by to být někde v menu "Zobrazení->přidat sloupce".
Nejsem si jist jestli tohle umožňuje správce ůloh v WinXP ale od vist výše tam jde zobrazit spoustu informací.

Další možností je použít procexp,vmmap,Rammap z sysinternalssuite http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx ale tam už je informací možná až zbytečně moc :)

mimochodem v  sysinternals je spousta pěkných prográmků (a některé nástroje jsou mocné:) takže opatrně)

Nahlásit jako SPAM
IP: 193.165.79.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý