Issue 9102: pybench: Cannot compare 2.x and 3.x benchmarks (original) (raw)

There are several issues that prevent

$ python3 Tools/pybench/pybench.py -s 27.bench -c 32.bench

from working.

  1. There is a bug in _pickle that prevents 2.x pickles that contain classic class instances from loading in 3.x. This is addressed in .

  2. Once _pickle issue is addresses, 2.7 benchmark files still cannot be loaded because they contain references to the Unicode tests and Unicode.py is not loadable in python3.

  3. Once Unicode.py gets 2to3 treatment, we are still left with

The last issue is probably the simplest. Version number was bumped up in r69411, and a log entry says that the intent was to keep pybench 2.1 compatible with 2.x. Indeed, pybench 2.1 from py3k runs under trunk python and resulting benchmark file can be compared with 3.x generated benchmark once issues 1 and 2 above are resolved. It may, however be worth consideration to synchronize pybench versions shipped with 27 and 32. I understand that this is likely to be too late for 2.7, but I am checking 2.7 version in case this is considered appropriate for 2.7.1.

The Unicode.py issue was discussed under in and . I like MAL's suggestion of Strings3 module, but I think it would be useful to be able to compare 2.x str performance to both 3.x str and 3.x bytes. Similarly, I think String3 should have from future import unicode_literals and be loadable in 2.7/2.6 and server as means to compare 2.x and 3.x unicode performance.

For the _pickle issue, I am about to attach a patch to .