[Python-Dev] Python 3.0.1 (io-in-c)

Raymond Hettinger python at rcn.com
Wed Jan 28 11:03:48 CET 2009


[Scott David Daniels]
> Comparison of three cases (including performance rations):
>                                        MB/S     MB/S    MB/S
>                                        in C  in py3k  in 2.7 C/3k 2.7/3k
> ** Text append **
>  10M write 1e6 units at a time        261.00 218.000 1540.000 1.20  7.06
>  20K write one unit at a time           0.983  0.081    1.33 12.08 16.34
> 400K write 20 units at a time          16.000  1.510   22.90 10.60 15.17
> 400K write 4096 units at a time       236.00 118.000 1244.000 2.00 10.54

Do you know why the text-appends fell off so much in the 1st and last cases?


> ** Text input **
>  10M read whole contents at once       89.700 68.700  966.000 1.31 14.06
>  20K read whole contents at once      108.000 70.500 1196.000 1.53 16.96
           ...
> 400K read one line at a time           71.700  3.690  207.00 19.43 56.10
          ...
> 400K read whole contents at once      112.000 81.000  841.000 1.38 10.38
> 400K seek forward 1000 units at a time 87.400 67.300  589.000 1.30  8.75
> 400K seek forward one unit at a time    0.090  0.071    0.873 1.28 12.31

Looks like most of these still have substantial falloffs in performance.
Is this part still a work in progress or is this as good as its going to get?


> ** Text overwrite **
>  20K modify one unit at a time          0.296  0.072    1.320 4.09 18.26
> 400K modify 20 units at a time          5.690  1.360   22.500 4.18 16.54
> 400K modify 4096 units at a time      151.000 88.300  509.000 1.71  5.76

Same question on this batch.


Raymond


More information about the Python-Dev mailing list