Message7339
I used the attached files to test on my machines.
in jython root dir:
tar xvf benchmark_scripts.tgz
cd patch
taskset -c 1,3,5,7 ./jython.py -u -r
-r: run all benchmarks specified in ./benchmarks/.run;
I chose a couple of ones from Language Shootout Game with various arguments;
-u: unmarshal; It uses ./benchmarks/unmarshal.py to unmarshal pregenerated .pyc files for
the same set of benchmarks included in ./benchmarks/.run
The machine I used:
Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
Mem 64GB
Linux 3.2.0-25-generic Ubuntu
result:
------------------------------------------------------------------------------------------------
ArrayList (old) | Array (new)
------------------------------------------------------------------------------------------------
Unmarshalling ... binarytrees.py 9 Unmarshalling ... binarytrees.py 9
2.845 3.016
Unmarshalling ... binarytrees.py 10 Unmarshalling ... binarytrees.py 10
2.618 2.642
Unmarshalling ... binarytrees.py 11 Unmarshalling ... binarytrees.py 11
2.945 2.608
Unmarshalling ... binarytrees.py 12 Unmarshalling ... binarytrees.py 12
4.333 3.607
Unmarshalling ... binarytrees.py 14 Unmarshalling ... binarytrees.py 14
10.724 10.148
Unmarshalling ... fannkuchredux.py 8 Unmarshalling ... fannkuchredux.py 8
2.744 3.022
Unmarshalling ... fannkuchredux.py 9 Unmarshalling ... fannkuchredux.py 9
10.646 10.667
Unmarshalling ... fasta.py 2000 Unmarshalling ... fasta.py 2000
2.952 3.320
Unmarshalling ... fasta.py 3000 Unmarshalling ... fasta.py 3000
3.234 3.023
Unmarshalling ... fasta.py 4000 Unmarshalling ... fasta.py 4000
2.917 3.399
Unmarshalling ... fasta.py 5000 Unmarshalling ... fasta.py 5000
3.246 3.225
Unmarshalling ... fasta.py 6000 Unmarshalling ... fasta.py 6000
2.977 3.502
Unmarshalling ... mandelbrot.py 200 Unmarshalling ... mandelbrot.py 200
3.262 3.295
Unmarshalling ... mandelbrot.py 300 Unmarshalling ... mandelbrot.py 300
4.355 4.378
Unmarshalling ... mandelbrot.py 400 Unmarshalling ... mandelbrot.py 400
5.466 5.156
Unmarshalling ... mandelbrot.py 500 Unmarshalling ... mandelbrot.py 500
7.586 7.193
Unmarshalling ... mandelbrot.py 600 Unmarshalling ... mandelbrot.py 600
9.992 9.145
Unmarshalling ... meteor.py 400 Unmarshalling ... meteor.py 400
6.135 5.728
Unmarshalling ... meteor.py 500 Unmarshalling ... meteor.py 500
7.030 6.765
Unmarshalling ... meteor.py 600 Unmarshalling ... meteor.py 600
7.755 7.505
Unmarshalling ... meteor.py 700 Unmarshalling ... meteor.py 700
8.485 8.280
Unmarshalling ... meteor.py 800 Unmarshalling ... meteor.py 800
8.744 8.723
Unmarshalling ... nbody.py 40000 Unmarshalling ... nbody.py 40000
4.635 4.037
Unmarshalling ... nbody.py 50000 Unmarshalling ... nbody.py 50000
5.056 4.623
Unmarshalling ... nbody.py 60000 Unmarshalling ... nbody.py 60000
6.479 5.054
Unmarshalling ... nbody.py 70000 Unmarshalling ... nbody.py 70000
6.534 5.868
Unmarshalling ... nbody.py 80000 Unmarshalling ... nbody.py 80000
7.400 6.751
Unmarshalling ... spectralnorm.py 100 Unmarshalling ... spectralnorm.py 100
2.552 2.787
Unmarshalling ... spectralnorm.py 200 Unmarshalling ... spectralnorm.py 200
5.180 4.616
Unmarshalling ... spectralnorm.py 300 Unmarshalling ... spectralnorm.py 300
7.843 7.437
Unmarshalling ... spectralnorm.py 400 Unmarshalling ... spectralnorm.py 400
11.694 11.282
Unmarshalling ... spectralnorm.py 500 Unmarshalling ... spectralnorm.py 500
17.548 16.271
------------------------------------------------------------------------------------------------
It shows that if the supplied arguments are not very small, the array version is noticeably faster.
In PyBytecode, line 46, the comments actually mentions that the field co_stacksize is used to convert PyStack from ArrayList to Array.
Thanks. |
|
Date |
User |
Action |
Args |
2012-07-27 22:06:46 | ndrzmansn | set | messageid: <1343426806.7.0.451125645451.issue1951@psf.upfronthosting.co.za> |
2012-07-27 22:06:46 | ndrzmansn | set | recipients:
+ ndrzmansn, fwierzbicki |
2012-07-27 22:06:46 | ndrzmansn | link | issue1951 messages |
2012-07-27 22:06:46 | ndrzmansn | create | |
|