Problem z pamięcią

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Kolin
Posty: 21
Rejestracja: 21 gru 2008 16:31
Kontakt:

Re: Labview a pamięć systemowa Windows...

Post autor: Kolin »

Witam
mam problem z poniższym programem (labview 7.1) zgłasza się komunikat not enough memory chociaż
mam 3GB ramu, z tego co się zdążyłem zorientować to wynika to raczej z błędu konstrukcji programu, program ten liczy krótkotrwałą transformatę furiera, w której ustawia się parametry okienkowania, jednym z nich jest time increment - definicja z helpa (time increment is the number of samples to shift the sliding window. The default is 1. Increasing time increment decreases the computation time and reduces memory requirements, but also reduces time-domain resolution. Decreasing time increment improves time-domain resolution, but increases the computation time and memory requirements) sprawdzałem zużycie pamięci i nie przekracza ono 50% gdy wyskakuje błąd. Jeśli ustawię time increment na 2 to programik liczy ale wolno. Błąd wyskakuje nawet wtedy, gdy uruchamiam programik bez podłączonego modułu akwizycji danych. Proszę o wskazówki ewentualnych zmian w programie które by go usprawniły?
Kolin
Posty: 21
Rejestracja: 21 gru 2008 16:31
Kontakt:

Re: Labview a pamięć systemowa Windows...

Post autor: Kolin »

dodam jeszcze, że częstotliwość próbkowania wynosi 100kHz a ilość próbek 10000, dla częstotliwości 50kHz i ilości próbek 5000 działa, ale wolno.

Pozdrawiam
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Labview a pamięć systemowa Windows...

Post autor: jogurt_owocowy »

sprawdzałem zużycie pamięci i nie przekracza ono 50% gdy wyskakuje błąd
LabVIEW niekoniecznie mówi, że brakło mu pamięci. Mówi, że jest jej za mało, żeby coś zrobić.
Jeśli ustawię time increment na 2 to programik liczy ale wolno.
Nie wiem co tam mierzysz, ale ustaw sobie 200 i będzie ok.
Ostatnio zmieniony 02 lut 2009 13:52 przez jogurt_owocowy, łącznie zmieniany 2 razy.
Kolin
Posty: 21
Rejestracja: 21 gru 2008 16:31
Kontakt:

Re: Labview a pamięć systemowa Windows...

Post autor: Kolin »

to może inaczej, wszystko byłoby super gdybym na intesity Graph na osi x otrzymywał czas w sekundach, a teraz na tej osi mam liczbę próbek dzieloną przez "time increment" czyli dla liczby próbek 10000 i time increment 10 mam na osi x skalę od 0 do 1000 i nie wiem jak się do tego odnieść (jak to przeliczać na sekundy?), bo zależy mi na dokładnym określeniu czasu obserwowanego zjawiska; a co do problemów z pamięcią to czytałem że Labview robi kopię przetwarzanch danych, zapychając w ten sposób pamięć "Extracting a data array for processing from waveform or dynamic data may make an extra copy."

Pozdrawiam
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Labview a pamięć systemowa Windows...

Post autor: jogurt_owocowy »

Utwórz dla kontrolki Intensity Graph węzeł własności (Create -> Property Node) i wybierz X Scale -> Offset and Multiplier -> Multiplier. Kliknij na nim prawym, Change to Write i podłącz do niego wartość time increment podzieloną przez częstotliwość próbkowania.
Od teraz oś X Intensity Graph będziesz mieć wyskalowaną w sekundach.
Pozdrawiam
Kolin
Posty: 21
Rejestracja: 21 gru 2008 16:31
Kontakt:

Re: Labview a pamięć systemowa Windows...

Post autor: Kolin »

wielkie dzięki, narazie wszystko działa jak należy, ale dopiero jutro sprawdzę na aparaturze
Pozdrawiam
ODPOWIEDZ