On 7 April 2015 at 10:43, Robert Collins <robe...@robertcollins.net> wrote:

>> $ time openstack -h
>> <snip>
>> real    0m2.491s
>> user    0m2.378s
>> sys     0m0.111s
>
>
> pbr should be snappy - taking 100ms to get the version is wrong.

I've now tested this.
With an egg-info present in a git tree:
python -m timeit -n 1 -r 1 -s "import pbr.version"
"pbr.version.VersionInfo('testtools').semantic_version()"
1 loops, best of 1: 166 usec per loop

Without an egg-info present in a git tree:
python -m timeit -n 1 -r 1 -s "import pbr.version"
"pbr.version.VersionInfo('testtools').semantic_version()"
1 loops, best of 1: 254 msec per loop

Installed:
python -m timeit -n 1 -r 1 -s "import pbr.version"
"pbr.version.VersionInfo('testtools').semantic_version()"
1 loops, best of 1: 189 usec per loop

So: the 200s case occurs when:
 - you're running out of git
 - have not built an egg_info

This is precisely the case where pkg_resources lookups cannot work,
and we are falling back to git. Its also the case where not using pbr
would result in no version being available and an error or $whatnot.

>From this I conclude that the tests testing performance are not
representative of end user experience - because we expect end users to
be running installed trees (either via "pip install -e ." [which also
creates an egg-info directory] or "pip install $projectname" or
"apt-get/yum/etc install $projectname"). I don't know what other
things may be wrong with the measurement environment, but we should
fix them so that we can be confident what we change matters.

-Rob

-- 
Robert Collins <rbtcoll...@hp.com>
Distinguished Technologist
HP Converged Cloud

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to