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?
Problem z pamięcią
Re: Labview a pamięć systemowa Windows...
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
Pozdrawiam
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Labview a pamięć systemowa Windows...
LabVIEW niekoniecznie mówi, że brakło mu pamięci. Mówi, że jest jej za mało, żeby coś zrobić.sprawdzałem zużycie pamięci i nie przekracza ono 50% gdy wyskakuje błąd
Nie wiem co tam mierzysz, ale ustaw sobie 200 i będzie ok.Jeśli ustawię time increment na 2 to programik liczy ale wolno.
Ostatnio zmieniony 02 lut 2009 13:52 przez jogurt_owocowy, łącznie zmieniany 2 razy.
Re: Labview a pamięć systemowa Windows...
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
Pozdrawiam
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Labview a pamięć systemowa Windows...
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
Od teraz oś X Intensity Graph będziesz mieć wyskalowaną w sekundach.
Pozdrawiam
Re: Labview a pamięć systemowa Windows...
wielkie dzięki, narazie wszystko działa jak należy, ale dopiero jutro sprawdzę na aparaturze
Pozdrawiam
Pozdrawiam