Tab Control spowalnia program :(
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Tab Control spowalnia program :(
Witam wszystkich.
Mam taki problem. Mam program, wszystko gra tak jak powinno i teraz chciałem dodać jedną tylko rzecz na panelu (bez modyfikowania samego programu). Mianowicie zaszła potrzeba pogrupowania kontrolek w dwóch osobnych zakładkach w Tab Control. I okazało się że po tej "operacji" program działa znacznie wolniej, a dokładnie "zacina się" mniej więcej na sekundę w momencie naciśnięcia jakiegoś przycisku czego nie było przed dodaniem Tab Control na panel.
Wie ktoś może dlaczego tak się dzieje i co z tym zrobić? Będę wdzięczny
Mam taki problem. Mam program, wszystko gra tak jak powinno i teraz chciałem dodać jedną tylko rzecz na panelu (bez modyfikowania samego programu). Mianowicie zaszła potrzeba pogrupowania kontrolek w dwóch osobnych zakładkach w Tab Control. I okazało się że po tej "operacji" program działa znacznie wolniej, a dokładnie "zacina się" mniej więcej na sekundę w momencie naciśnięcia jakiegoś przycisku czego nie było przed dodaniem Tab Control na panel.
Wie ktoś może dlaczego tak się dzieje i co z tym zrobić? Będę wdzięczny
Re: Tab Control spowalnia program :(
PNTD Pokaż Nam Twój Diagram 8)jogurt_owocowy pisze:Witam wszystkich. Mam taki problem.
Mam program, wszystko gra tak jak powinno i teraz chciałem dodać jedną tylko rzecz na panelu (bez modyfikowania samego programu). Mianowicie zaszła potrzeba pogrupowania kontrolek w dwóch osobnych zakładkach w Tab Control. I okazało się że po tej "operacji" program działa znacznie wolniej, a dokładnie "zacina się" mniej więcej na sekundę w momencie naciśnięcia jakiegoś przycisku czego nie było przed dodaniem Tab Control na panel.
Wie ktoś może dlaczego tak się dzieje i co z tym zrobić? Będę wdzięczny
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Skopiowałem tą cześć programu która wykonuje się w głównej pętli do dwóch plików
http://student.uci.agh.edu.pl/~iron/bez_tab_control.vi
i
http://student.uci.agh.edu.pl/~iron/z_tab_control.vi
W pierwszym pliku wszystko jest ok.
Ten drugi różni się od pierwszego tylko dodanym Tab Control na który zostały przeniesione kontrolki. Pętla tak jakby staje na chwilę w momencie przyciśnięcia jakiegokolwiek przycisku. Dlaczego? Bo chyba same zakładki nie są aż tak procesorowożerne?!
Dziękuję z góry za wszystkie rady
PS. Mam dość wolnego kompa (celeron 633). Na szybszych ta różnica szybkości może nie być zauważalna.
http://student.uci.agh.edu.pl/~iron/bez_tab_control.vi
i
http://student.uci.agh.edu.pl/~iron/z_tab_control.vi
W pierwszym pliku wszystko jest ok.
Ten drugi różni się od pierwszego tylko dodanym Tab Control na który zostały przeniesione kontrolki. Pętla tak jakby staje na chwilę w momencie przyciśnięcia jakiegokolwiek przycisku. Dlaczego? Bo chyba same zakładki nie są aż tak procesorowożerne?!
Dziękuję z góry za wszystkie rady
PS. Mam dość wolnego kompa (celeron 633). Na szybszych ta różnica szybkości może nie być zauważalna.
1. Jaka to wersja LabVIEW? przypuszczam że przynajmniej 7 ?jogurt_owocowy pisze: W pierwszym pliku wszystko jest ok. Ten drugi różni się od pierwszego tylko dodanym Tab Control na który zostały przeniesione kontrolki. Pętla tak jakby staje na chwilę w momencie przyciśnięcia jakiegokolwiek przycisku.
Dlaczego? Bo chyba same zakładki nie są aż tak procesorowożerne?!
Dziękuję z góry za wszystkie rady
2. dlaczego układ jest oparty na pętli while pozbawionej opóźnienia? Skąd to pytanie: LabVIEW ma tendencje do wymuszania na systemie maksymalnej prędkości obsługi petli. Potrzebne jest opóźnienie w trakcie którego system wykona oczekujące zadania.
W przypadku automatu z monetami nie potrzebujesz na pewno minimalnych czasów tylko optymalnego kodu. Stąd pytanie kolejne:
3. Dlaczego nie stosujesz eventów? to znacznie rozwiązalo by problem pętli while.
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
Zdarzenia
Święta racja Mikrobi, wtedy program po pierwsze zacząłby pochłaniać mniej zasobów systemu i działałby sprawniej.Mikrobi pisze: Dlaczego nie stosujesz eventów? To znacznie rozwiązalo by problem pętli while.
Druga sprawa przy taki diagramie jak jest teraz zauważyłem (ale mogę się mylić - bo to są ułamki sekund), iż gdy wrzuciłem kontrolkę z Tab Control do pętli to jakby się pętla wykonywała płynniej. Możesz wrzucić opóźnienie rzędu 1 milisekundy i już możesz otrzymać lepszą pracę programu, a na pewno nie wpłynie to na jego szybkość działania - przynajmniej przy tym zastosowaniu co widzę.
bogdani
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Zatem: diagram o następującej postacijogurt_owocowy pisze:Właśnie rozgryzam eventy. A za wszelkie uwagi odnośnie efektywności diagramu będę wdzięczny. Coś co dla Was, starych wyjadaczy jest oczywiste (jak np. to opóźnienie w pętli) dla kogoś kto zaczyna jest zupełnie nowe.
realizuje jak rozumiem taką operację:
czyli mnoży przez siebie odpowiednie elementy wektorów. Pozostałe wątpliwości - przyciski "WRZUĆ" -
mozna to rozwiązać w ten oto sposób
Nieco uprości to diagram. W CASE'ie oczywiście trzeba będzie przemianować przypadek "Default" z 0 na 1 i tam wykonać te tajemnicze operacje na zmiennych lokalnych
Ponadto taka struktura aplikacji nie jest właściwa. Zadanie takie powinno być realizowane za pomoca struktury event.
Zatem wie pan jak mnie znaleźćjogurt_owocowy pisze:Chyba mieliśmy razem obrazki )
8)