-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch from pvDatabase to SharedPV #485
base: master
Are you sure you want to change the base?
Conversation
Would it also make sense to change pvaDriver to use your new PVA code? |
pvaDriver is currently using the lower level pvAccessCPP APIs (doesn't depend on pvDatabase). I'm not sure switching to From what I can tell, with pvaDriver conversion to In the long run, I see migration to |
I've tested the pipeline=true behavior and it seems fine now. I get a single update for every image generated. Also tested the default request type and with queueSize=100, and they are fine. I did also test: The only other problem I found was that the information is missing for the timestamp and the codec. For example, with compression enabled:
|
With this patch I am able to run at higher frame rates before dropping images. I tested using pvaDriver with the default request type (no pipeline, and default queueSize). These tests were run for 1 minute on a VM with 2 cores, with 128x128 UInt8 images. The machine is not heavily loaded. The CPU use values are for the IOC simulating the images and using the PVA plugin. 1st testing without the patch:
And the same test with the patch to the PVA plugin:
Slightly higher CPU use, but I was running at higher frame rate and not losing images. |
It seems I inadvertently provided an example of how complicated PVD is. To attach a This should be fixed now. |
I can confirm it fixes the problem with the timestamp and codec information:
I did more testing with pipeline=true. It seems to work for a while, then stop sending out updates. If I do this:
And then produce images at 100Hz, it stops printing out the uniqueId after a few seconds. If I restart the client, it's fine again for a few seconds. I saw the same effect when I modified pvaDriver to use pipeline=true. I ran the same test without pipeline=true and it seems to run forever (I tested for a few minutes at 100Hz). |
Quick migration from pvDatabaseCPP to
pvas::SharedPV
from pvAccessCPP.http://epics-base.github.io/pvAccessCPP/group__pvas.html
I have only done some quick testing using cs-studio. I think this will behave ~the same as before, excepting pvDatabase specific handling of pvRequest.
May be interesting to test pvRequest "pipeline=true" behavior.