-
Notifications
You must be signed in to change notification settings - Fork 182
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
Add DCMTK only benchmark #639
Conversation
I did some yappi profiling. Here's what benchmark 1's most common functions:
And benchmark 3's functions
It's clear that most of the time in SCU is encoding. But it's not clear what's blocking in SCP. |
There are certainly some optimisations left, off the top of my head:
Hmm, that command set/DIMSE dataset encoder/decoder idea sounds like fun... |
Codecov Report
@@ Coverage Diff @@
## master #639 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 27 27
Lines 8476 8659 +183
==========================================
+ Hits 8476 8659 +183
|
Thanks for the answer.
I think both are same? Async makes everything event based and we don't need to have Do you have any advice on how do we go about this? I've had hard time wrapping all the complexity of the code around my head to know where do I even start? As you probably know asyncio uses transports and protocols to create a network application. If we were to move to this, how do different classes below fit in this framework? Any advice is appreciated |
Added benchmark for dcmtk scu/scp for comparison. Current benchmarks have pynetdicom only version but no dcmtk only version for a fair comparison.
Here are the benchmarks on my MBA M1:
It's sobering to see performance of 9 vs 10. DCMTK is roughly 6 times faster than pynetdicom. Do you think if there is something that can be done to speed pynetdicom up?