-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Hi,
I've been playing around with pvaDriver today, transporting 0.5MB images between two areaDetector IOCs with and without LZ4 compression.
I saw poor performance with the pvaDriver with even a low frame rate of 100Hz (only 50MB/s), in that I was dropping arrays every few seconds.
Then I made this change in pvaDriver:
diff --git a/pvaDriverApp/src/pvaDriver.cpp b/pvaDriverApp/src/pvaDriver.cpp
index 02b5d4a..278c21f 100644
--- a/pvaDriverApp/src/pvaDriver.cpp
+++ b/pvaDriverApp/src/pvaDriver.cpp
@@ -23,8 +23,8 @@
#include <epicsExport.h>
#include "pvaDriver.h"
-//#define DEFAULT_REQUEST "record[queueSize=100]field()"
-#define DEFAULT_REQUEST "field()"
+#define DEFAULT_REQUEST "record[queueSize=100]field()"
+//#define DEFAULT_REQUEST "field()"
And that worked wonders. I was able to reliably run at 100Hz, 800Hz and even 1500Hz without dropping frames.
It seems like that driver was used with queueSize=100 at some point but that it was commented out.
I think this parameter could be made configurable as an argument to pvaDriverConfig(). Does that sound reasonable? If so, I can make a pull request and test it.
Matt