Witam,
mam problem z szybkością działania aplikacji.
App ma wysyłać dane do server`a, ten z kolei przesyła dane do PCB -> ta wysyła feedback, app odbiera feedback i przesyła kolejne dane.
Wszystko nie powinno zając więcej niż 200ms - zrzut z wireshark to potwierdza(patrz załączone).
10.93.1.105 - server
10.93.1.244 - klient
Klient wysyła dane, server odpowiada w ciągu 80ms, a potem dzieje się magia. Aplikacja nie odbiera danych szybciej niż po 500ms.... mało tego, zwalnia w czasie, po minucie juz jest prawie sekunda, po 3-4minutach z 5s....
Nie mogę namierzyć błędu. Bufor z danymi ie jest na tyle duży żeby aż tak spowalniać aplikację.
Myśłałem, że dodanie semaforów rozwiąze problem, ale przecież jest to komunikacja full duplex, więc to bez sensu.
Ktoś ma jakieś pomysły?
pozdrawiam
Problem z TCP/IP, zwalnia w czasie
Problem z TCP/IP, zwalnia w czasie
- Załączniki
-
- tunis.protocoles.eth.service.read_buffer.vi
- (37.7 KiB) Pobrany 340 razy
-
- tunis.protocoles.eth.service.tx_header.vi
- (17.19 KiB) Pobrany 337 razy
-
- tunis.protocoles.eth.stateMachine.vi
- (59.42 KiB) Pobrany 356 razy
- Pitol
- Moderator
- Posty: 982
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: Problem z TCP/IP, zwalnia w czasie
Niewiele można wywnioskować z Twoich VI.
Jedyne co widzę, to operowanie na referencjach do tablic (rx.MsgDataSoftware i rxMsgData). Jeśli te tablice są zapełniane dość często i dość sporą ilością danych, odświeżenie ich wartości może wymagać coraz więcej czasu.
Na potrzeby testu usuń wpisywanie wartości do tablic (prop. node) i zobacz czy ma to wpływ na pracę Twojego programu.
Jedyne co widzę, to operowanie na referencjach do tablic (rx.MsgDataSoftware i rxMsgData). Jeśli te tablice są zapełniane dość często i dość sporą ilością danych, odświeżenie ich wartości może wymagać coraz więcej czasu.
Na potrzeby testu usuń wpisywanie wartości do tablic (prop. node) i zobacz czy ma to wpływ na pracę Twojego programu.