-
-
Notifications
You must be signed in to change notification settings - Fork 512
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
Use highest possible pickle protocol #1152
Conversation
Codecov Report
@@ Coverage Diff @@
## master #1152 +/- ##
==========================================
- Coverage 92.7% 92.69% -0.02%
==========================================
Files 57 57
Lines 6910 6912 +2
==========================================
+ Hits 6406 6407 +1
- Misses 504 505 +1
Continue to review full report at Codecov.
|
I'm not that happy with the added complexity, but I can understand the cause. Do you think it's actually worth it? I know it feels like quite a performance increase for cv2 on Python3.6, but it's also just that. I guess I'll leave the decision if I should merge to you. |
Interesting! |
I think it's worth. All modules with huge files are going to benefit from this and not only on Python 3.6 but all versions of Python starting from 3.3.
Added a bunch of unit tests. |
Fair enough. |
[READY] Include Jedi performance improvements This includes PRs davidhalter/jedi#1149, davidhalter/jedi#1150, davidhalter/jedi#1151, and davidhalter/jedi#1152 which significantly improve performance especially on Windows and Python 2. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/ycmd/1056) <!-- Reviewable:end -->
Currently, Jedi uses version 2 of the pickle protocol to be compatible with all supported versions of Python. However, we can be smarter and use the highest version of the pickle protocol that is compatible with the version of Python running Jedi itself and the one running the environment. Examples:
The reason for using the highest possible version of the pickle protocol is that performance is better with newer versions of the protocol as shown by the following results:
Measurements obtained with this script when completing the
os
,numpy
, andcv2
(opencv-python) modules on Ubuntu 18.04 64-bit.This change is