Witam,
Mam do napisania prosty program który miałby alokować i zwalniać pamieć w taki sposób by w menedżerze zadań pamieć ram rosła bardzo szybko i bardzo szybko jej zuzycie ma spadać ma to wyglądać jak w załaczniku coś w rodzaju trójkątów wzrost/ spadek w 2 wersji pamieć ma być zwalniania z opóżnieniem przy uzuciu funkcji sleep_for (przypadek na górze w załaczniku).
Testowałem moje programy w Menedżerze , znalazłem u grębosza przykład gdzie pamieć rośnie bardzo szybko ąz komp sie resetuje czyli pętla nieskączona i dynamiczna alokacja pamieci w sposób
new int
ale wtedy adresy nie zapisujemy i nie mozemy ich usunać. Wiec dałem warunek najbardziej optymalny wyszło mi że to 100 000 przy tworzeniu obietów w pętli bo dzieki temu wszystkie obiekty stworze i usunę gdy dam warunek wiekszy to on tworzy obiekty aż wrescie sie zawiesza wyrzuca wyjatek bad_alloc że niby pamieć sie skonczyła a tak naprawde w menedżerze jest jeszcze kilka giga. przy moim rozwiązaniu ona wolno rośnie i wolno spada gdy chciałem to przyspieszyć to albo zawiecha programu albo ten wyjątek mimo ze pamieć jest . Jak optymalnie wykonać te zadanie by wyglądało to jak na wykresie w załaczniku ?
void funkcja ()
{
long int * bul;
long int*tab[100000];
for(k = 0 ; k<100000 ; k++ )
{
bul= new long int[k];
tab[k]=bul;
cout<<"faza tworzenia "<<bul<<" "<<k<<endl;
}
for( l = 0 ; l<100000 ; l++ ){
bul=tab[l];
cout<<"faza usuwania "<<bul<<" "<<l<<endl;
delete []bul;
}
}