Strona 1 z 1

Zasoby komputera

: 20 mar 2010 17:36
autor: celsjsuz
Witam.. Jak w tytule mam problem z obciążeniem komputera w miarę pracy programu. Program zbiera próbki co 2s (max 20 pomiarów) i zapisuje w 2D Array'a plus wszystkie bajery jakie udało mi się wymyślić (oraz z pomocą kolegów z forum zaimplementować). To znaczy wykres, bargrafy i zapis danych do pliku TXT w kolumnach. Symptomy są następujące: po około 8000 tyś zebranych pomiarach mój Core2Duo zaczyna głośno sapać (obciążenie procesora 79% i wiecej) - wydaje mi się że powodem są te trzymane i na bieżąco odtwarzane (na wykresie XYGraph i w tabeli) tysiące próbek.
Od niedawna zajmuje się LV wiec pewnie jest to wina kulawo napisanego programu. W najbliższym czasie planuje niezależnie od wszystkiego przekształcenie mojego programu w strukturę event'owa - jednakże w kontekście tych tysięcy próbek w pamięci nie sądzę by to działanie jakoś znacząco wpłynęło na opisywany problem.
Można by było skorzystać z jakiejś formy bufora FIFO (znalazłem kilka przykładów na tym forum), kóry utrzymywałby ostatnie 1000 - 2000 pomiarów w pamięci, nadpisujac na bieżąco te starsze.
Problem w tym że, jak już się przekonałem, są sytuacje w których chciałbym wrócić (na wykresie lub w tabeli) do pomiarów z przed powiedzmy godziny, kiedy program nadal zbiera dane...
Da się z tym może coś zrobić....

Zasoby komputera

: 20 mar 2010 17:43
autor: Pitol
da się... zebrane próbki zapisuj do pliku, a gdy odświeżasz wykres odczytuj z pliku ;)
poza tym, jeśli odświeżanie wykresów nie jest jakoś wybitnie niezbędne to możesz je wykonywać rzadziej niż próbki przychodzą

Zasoby komputera

: 20 mar 2010 17:44
autor: Nowszy
Cześć

Trudno ci coś doradzić nie znając twojego programu. Zależnie od twoich wymagań, możesz go napisać tak, żeby nie wszystkie dane były wypisywane na grafie. Gdybyś korzystał z charta, to on ma wbudowaną historię o określonej długości. W przypadku Grapha, trzeba kombinować:
http://digital.ni.com/public.nsf/allkb/ ... 3D006EFF7C

Taka szybka podpowiedź/pomysł - zmniejsz wielkość wyświetlacza na panelu czołowym i sprawdź czy obciążenie spadnie - powinno.

Re: Zasoby komputera

: 20 mar 2010 19:15
autor: celsjsuz
heh ... dokładnie jak kolega powiedział "zapisuj dane do pliku, po czym odczytuj je z pliku na wykres + tabelka :)" + do tego takie FIFO, tak bym mógł zdefiniować ile próbek chciałbym z pliku zaczytać oraz tak bym mógł się poruszać po zapisywanym na bieżąco pliku. Ma może któryś z kolegów kawałek pasowitego kodu...

Zasoby komputera

: 20 mar 2010 22:47
autor: Pitol
eee no, nic nie cieszy bardziej niż własny kawałek kodu :) dasz radę, wierzymy w Ciebie!!

Re: Zasoby komputera

: 21 mar 2010 01:38
autor: wino
a do jakiego rodzaju pliku zapisujesz?

Re: Zasoby komputera

: 21 mar 2010 12:53
autor: celsjsuz
Zapisuje, funkcją "Write to txt file" do pliku txt.
Plik tego typu nie rozrasta się to gigantycznych rozmiarów w miarę pracy programu, nawet jeżeli liczba pomiarów idzie w tysiące.
Nie ma też problemu z późniejszym powrzucaniem danych gdziekolwiek by się chciało - np. do Excela