New submission from S Safihre: I have a Python 2.7 C-extension that was made for performance, however, I noticed something strange on Windows: When I run locally python setup.py install and it installs it the "egg" way, the performance of calling the function in the module 500x in a loop is:
yEnc C New took 579 ms yEnc C New took 580 ms yEnc C New took 580 ms But when I install it as a wheel locally or via pip without a single change to the C-code, this is the result: yEnc C New took 702 ms yEnc C New took 694 ms yEnc C New took 691 ms That's a 10-15% difference. I also checked macOS and Ubuntu, here it does not seem to be the case. By investigating (https://github.com/pypa/setuptools/issues/1154) I found that the difference is only that the "egg" way the module gets loaded via imp.load_dynamic I cannot test under Python 3, since the module is (not yet) converted to Python 3-style. To reproduce run and look at the yEnc C New score between the 2 ways (on Windows only of course): git clone https://github.com/sabnzbd/sabyenc.git cd sabyenc python setup.py install python .\tests\speed_compare.py; python .\tests\speed_compare.py;python .\tests\speed_compare.py; pip uninstall sabyenc -y pip install sabyenc # Or this: # python setup.py install bdist_wheel # pip install .\dist\sabyenc-3.3.1-cp27-cp27m-win_amd64.whl python .\tests\speed_compare.py; python .\tests\speed_compare.py;python .\tests\speed_compare.py; ---------- components: Extension Modules, Windows messages: 302768 nosy: S Safihre, paul.moore, steve.dower, tim.golden, zach.ware priority: normal severity: normal status: open title: Windows pyd slower when not loaded via load_dynamic type: performance versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue31555> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com