Je nejaky způsob, jak uvolnit pouze cast alokovane pameti? (jakýkoliv?)
Fórum › C / C++
Uvolňování paměti
skocka napsal:
Je nějaký způsob, jak uvolnit pouze část alokované paměti? (jakýkoliv?)
Pokud alokujete souvisly blok pameti, tak se domnivam, ze to nejde. Ale slo by to uvolnovat pouze kdybyste vytvoril pole ukazatelu. Jinak je mi zahodou, proc to vlastne potrebujete?
Pozn.: Pokud pracujete v C++, tak vyuzijte nejaky kontejner(napr. vector) z STL a mate vystarano(samozrejme pokud do toho kontejneru nebudete cpat ukazazetel an objekty, pak to stejne budete muset dealokovat)
D?l?m v C a zrovna se pokou??m o n?jak? lep?? zpracov?n? eratosthenova s?ta.
Je to docela n?ro?n? na pam?? - vytv??? bitovou mapu prvo??sel od 0 do n, kde n<=2^32-8, co? p?i maxim?ln?m n zab?r? skoro a? 512MB pam?ti (n/8 B). V p??pad?, ?e chci generovat prvo??slo od po??tku v?t??ho ne? nula je ale pam?? n/8B pot?ebn? pouze zpo??tku a s postupn?m vypl?ov?n?m pole by se mohly prvn? bajty mazat, ??m? bych mohl uvolnit velkou ??st te? u? nepot?ebn? pam?ti, ??m? bych mohl zabr?nit swapov?n? v pr?b?hu dal?? ??st v?po?tu. V?po?et by mi to pak dost zrychlilo.
skocka napsal:
D?l?m v C a zrovna se pokou??m o n?jak? lep?? zpracov?n? eratosthenova s?ta.
Je to docela n?ro?n? na pam?? - vytv??? bitovou mapu prvo??sel od 0 do n, kde n<=2^32-8, co? p?i maxim?ln?m n zab?r? skoro a? 512MB pam?ti (n/8 B). V p??pad?, ?e chci generovat prvo??slo od po??tku v?t??ho ne? nula je ale pam?? n/8B pot?ebn? pouze zpo??tku a s postupn?m vypl?ov?n?m pole by se mohly prvn? bajty mazat, ??m? bych mohl uvolnit velkou ??st te? u? nepot?ebn? pam?ti, ??m? bych mohl zabr?nit swapov?n? v pr?b?hu dal?? ??st v?po?tu. V?po?et by mi to pak dost zrychlilo.
S tim mazanim to patrne nebude dobry napad, rekl bych ze prave tohle je na tom nejvice pametove narocne, resp. na rychlosti. Neslo by, napr. pri velkych N rozdelit vypocty na co mozna nejvice stejne useky a pocitat to po castech? Tim by se omezilo mazani pameti...
Sharptan napsal:
Pokud nějaký výpočet zabírá tolik paměti, je to pravděpodobně rekurze. V takovém případě je vhodnější z rekurze udělat obyčejní cyklus, na paměť to bude šetrnější, jen si autor o něco málo víc zapíše.
Mno, myslim, ze by byl autor sam proti sobe, kdyby implementoval Eratostenovo sito pomoci rekurze, navic vetsina znamych implementaci jsou obvykle reseny pomoci cyklu.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Uvolnovani pameti — založil Aaron
Uvolňování paměti — založil Michal
DllImport a uvolnovani pameti — založil Filx
"realokace" paměti — založil Passassa
Nedostatek paměti — založil ProgDan
Moderátoři diskuze