[ANN] Benchmarker 3.0.1 released - a small benchmark utility
Makoto Kuwata
kwa at kuwata-lab.com
Sat Feb 12 20:37:39 EST 2011
Hi,
I released Benchmarker 3.0.1.
http://pypi.python.org/pypi/Benchmarker/
Benchmarker is a small utility to benchmark your code.
*NOTICE* This release doesn't have compatibility with release 2.0.0.
Download
--------
http://pypi.python.org/pypi/Benchmarker/
Installation::
## if you have installed easy_install:
$ sudo easy_install Benchmarker
## or download Benchmarker-3.0.1.tar.gz and install it
$ wget http://pypi.python.org/packages/source/B/Benchmarker/Benchmarker-3.0.1.tar.gz
$ tar xzf Benchmarker-3.0.1.tar.gz
$ cd Benchmarker-3.0.1/
$ sudo python setup.py install
Example
-------
ex0.py::
from benchmarker import Benchmarker, cmdopt
cmdopt.parse()
s1, s2, s3, s4, s5 = "Haruhi", "Mikuru", "Yuki", "Itsuki", "Kyon"
with Benchmarker(width=20, loop=1000*1000) as bm:
for _ in bm.empty(): ## empty loop
pass
for _ in bm('join'):
sos = ''.join((s1, s2, s3, s4, s5))
for _ in bm('concat'):
sos = s1 + s2 + s3 + s4 + s5
for _ in bm('format'):
sos = '%s%s%s%s%s' % (s1, s2, s3, s4, s5)
Output example::
$ python ex0.py -h # show help message of command-line optins
$ python ex0.py
## benchmarker: release 3.0.1 (for python)
## python platform: darwin [GCC 4.2.1 (Apple Inc. build 5664)]
## python version: 2.7.1
## python executable: /usr/local/python/2.7.1/bin/python
## user sys total real
(Empty) 0.1600 0.0000 0.1600 0.1639
join 0.6500 0.0000 0.6500 0.6483
concat 0.5700 0.0000 0.5700 0.5711
format 0.7600 0.0000 0.7600 0.7568
## Ranking real
concat 0.5711 (100.0%) *************************
join 0.6483 ( 88.1%) **********************
format 0.7568 ( 75.5%) *******************
## Ratio Matrix real [01] [02] [03]
[01] concat 0.5711 100.0% 113.5% 132.5%
[02] join 0.6483 88.1% 100.0% 116.7%
[03] format 0.7568 75.5% 85.7% 100.0%
Notice that empty loop times (user, sys, total, and real) are
subtracted from other benchmark times automatically.
For example::
===================================================
benchmark label real (second)
---------------------------------------------------
join 0.6483 (= 0.8122 - 0.1639)
concat 0.5711 (= 0.7350 - 0.1639)
format 0.7568 (= 0.9207 - 0.1639)
===================================================
See http://pypi.python.org/pypi/Benchmarker/ for details.
Changes on release 3.0.1
------------------------
* License is changed again to Public Domain.
* Change Task class to pass 1-origin index to yield block when 'for _ in bm()' .
* Fix a bug that 'for _ in bm()' raised error when loop count was not specified.
* Fix a bug that 'for _ in bm()' raised RuntimeError on Python 3.
Changes on release 3.0.0
------------------------
* Rewrite entirely.
* Enhanced to support command-line options. ::
import benchmarker
benchmarker.cmdopt.parse()
You can show all command-line options by ``python file.py -h``.
See README file for details.
* Benchmarker.repeat() is obsolete. ::
## Old (obsolete)
with Benchmarker() as bm:
for b in bm.repeat(5, 1):
with b('bench1'):
....
## New
for bm in Benchmarker(repeat=5, extra=1):
with bm('bench1'):
....
* Changed to specify time (second) format. ::
import benchmarker
benchmarker.format.label_with = 30
benchmarker.format.time = '%9.4f'
* Followings are removed.
* Benchmark.stat
* Benchmark.compared_matrix()
* Benchmark.print_compared_matrix()
Have fun!
--
regards,
makoto kuwata
More information about the Python-list
mailing list