Problem:
PV servers has difficultly keeping up reading PV objects with very large struct arrays. The same issue appears with both mirror server and p2p.
Steps to reproduce:
IOC is writing PV array with 27000 struct elements to a PV channel at 10hz
Run mirror server mapped to PV channel to a second PV channel
Run pvapy client to read data from the second PV channel
The pvapy client receives the data at 4Hz. The TCP-rx thread in the mirror server is maxed out and the perf profile shows that it is spending most time creating and deleting struct arrays (see graph below):
Both the mirror server and pv client can be optimized by caching the PV object structure after the connection is initialized.
Problem: PV servers has difficultly keeping up reading PV objects with very large struct arrays. The same issue appears with both mirror server and p2p. Steps to reproduce:
The pvapy client receives the data at 4Hz. The TCP-rx thread in the mirror server is maxed out and the perf profile shows that it is spending most time creating and deleting struct arrays (see graph below):
Both the mirror server and pv client can be optimized by caching the PV object structure after the connection is initialized.