logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

C++ - Jak ograniczyć zużycie pamięci do 1 GB w pętli?

Marquez1 14 Sty 2010 18:36 1472 7
REKLAMA
  • #1 7535485
    Marquez1
    Poziom 10  
    Posty: 8
    Witam mam za zadanie napisać program który o odpowiedniej godzinie zacznie obciążać maxymalnie procesor oraz zużyje całą pamięć dostępną na komputerze oprócz tej potrzebnej do uruchomienia ponownego systemu Windows.

    Jak obciążyć procesor - > zrobiłem pętlę która nie ma końca (dobry pomysł)

    Jak zużyć pamięć -> zrobię tablicę, która będzie się powiększała i zapisywała do zmiennej i powielała samoczynnie i znowu zapisywała i......tutaj pojawia się moje pytanie -
    --->> w jaki sposób go zatrzymać (dać mu ograniczenie np. na początek 1 GB żeby zostawił). Jak dla początkującego to wyzwanie a nie chce czegoś namieszać :D
    pozdro =]
  • REKLAMA
  • #2 7535577
    Dżyszla
    Poziom 42  
    Posty: 7077
    Pomógł: 1095
    Ocena: 226
    Zamiast tablic raczej bym tworzył listę dynamiczną. Ograniczyć poprzez try..catch, który wychwyci wyjątek outofmemory (czy coś w tym stylu).

    Co to za pojęcie "pamięci potrzebnej do uruchomienia ponownego systemu"? Nie ma czegoś takiego.
  • REKLAMA
  • #3 7536448
    Marquez1
    Poziom 10  
    Posty: 8
    "zużyje wszystkie zasoby komputera, na którym jest uruchomiona (wolną przestrzeń na dyskach twardych pozostawiając po ~200MB na każdym, oraz moc obliczeniową procesora)."

    jak się tworzy listę dynamiczną? (dopiero zaczynam)
  • REKLAMA
  • #4 7541702
    lofi
    Poziom 13  
    Posty: 116
    Ocena: 1
    wskaźniki, operatory new i delete znasz?
  • REKLAMA
  • #5 7543097
    Marquez1
    Poziom 10  
    Posty: 8
    znam, dzięki wielkie =)
  • #6 7543273
    Dżyszla
    Poziom 42  
    Posty: 7077
    Pomógł: 1095
    Ocena: 226
    A o dysku nie było wcześniej mowy... Tutaj najprostszym będzie wyliczenie wolnego miejsca i założenie pliku (zapis blokowy). Ale uwaga! Jeśli będziesz miał do czynienia z FAT, to pamiętaj o ograniczonych rozmiarach jednego pliku! Ograniczenie 2TB dla NTFS (o ile dobrze pamiętam) raczej nie będzie problemem.
  • #7 7543721
    Marquez1
    Poziom 10  
    Posty: 8
    Możesz mi jeszcze powiedzieć w jaki sposób skorzystać z zegara?
    Chce stworzyć (graficznie) timer który przyjmuje za godzinę = godzinę systemową, użytkownik wpisuje godzinę w textBoxie i gdy zegar osiągnie wyznaczoną godzinę to coś ma się dziać.

    Chodzi mi o to że trzeba jakoś określić zmienne dla godziny, minuty i sekundy np:

    g = godzina w systemie
    m = minuta ...
    s = sekunda ...

    później muszę zdefiniować te dane wprowadzone przez użytkownika np.

    g1 = godzina wprowadzona przez użytkownika
    m1 = minuta ...
    s1 = sekunda ...

    warunek chyba na zwykłym if mogę zrobić.

    Nie wiem jak pobrać czas z systemu, i jak zapisać dane od użytkownika (może on je wpisać rozdzielając np. " : " i co wtedy?), dobrym pomysłem będzie wymuszenie od użytkownika każdej zmiennej w innym textBoxie?



    PS. studiowałeś w Opolu?
  • Pomocny post
    #8 7543906
    Dżyszla
    Poziom 42  
    Posty: 7077
    Pomógł: 1095
    Ocena: 226
    Wykorzystaj TTimer - tam będziesz sprawdzał, czy bieżący czas jest przekroczony od tego zadanego. Nie musisz wcale posługiwać się odrębnymi zmiennymi. Wystarczy TDateTime (nie jestem na 100% pewny czy dokładnie tak się to w BCB nazywa). Potem wystarczy porównanie if StrToTime(Podany_przez_Uzytkownika)<Time

    Ad PS - tak.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukuje sposobu na ograniczenie zużycia pamięci do 1 GB w programie C++, który ma maksymalnie obciążyć procesor i wykorzystać dostępne zasoby komputera. Proponowane rozwiązania obejmują użycie dynamicznych list zamiast tablic oraz obsługę wyjątków, aby zatrzymać alokację pamięci po osiągnięciu limitu. Dodatkowo, użytkownik pyta o implementację timera, który uruchomi proces w określonym czasie, sugerując użycie TTimer oraz porównania czasu systemowego z czasem wprowadzonym przez użytkownika.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA