Branch: refs/heads/master
Home: https://github.com/buildbot/buildbot
Commit: 2ab18d865f06db1b643d5b005eb83a35a6927da4
https://github.com/buildbot/buildbot/commit/2ab18d865f06db1b643d5b005eb83a35a6927da4
Author: Pierre Tardy <[email protected]>
Date: 2012-10-02 (Tue, 02 Oct 2012)
Changed paths:
M master/buildbot/test/__init__.py
A master/buildbot/test/unit/test_util_namespace.py
A master/buildbot/util/namespace.py
Log Message:
-----------
namespace: convenience class for json like data
One thing that is cooler with java-script than in python is that
dictionaries and objects are the same thing. It allows browsing of
complex hierarchical data syntactically easy.
One will always prefer writing:
buildrequest.properties.myprop
rather than
brdict['properties']['myprop']
This class allows such syntax sugar, by converting a dictionary
to something that responds to both object and dictionary duck typing
We don't redo the mistakes of java-script model, and don't allow this
class to be inherited, and forbid to implement any specific method
apart from the '__' prefixed duck-typing
only keys() items() and values() are reserved and cannot be accessed
via object notation. they can only be accessed via dict like
notation
First implementation, that use an internal _dict attribute
test_benchmark1 ...
create + access
pure dict : 0.00572395324707
Namespace as dict : 0.29655623436 ( 5180 %)
Namespace as object: 0.293313026428 ( 5124 %)
access only
pure dict : 0.00226902961731
Namespace as dict : 0.219506025314 ( 9674 %)
Namespace as object: 0.236507892609 ( 10423 %)
[OK]
test_benchmark2 ...
create + access
pure dict : 0.00633692741394
Namespace as dict : 0.345242977142 ( 5448 %)
Namespace as object: 0.35455083847 ( 5594 %)
access only
pure dict : 0.00258111953735
Namespace as dict : 0.259343862534 ( 10047 %)
Namespace as object: 0.266692876816 ( 10332 %)
[OK]
test_benchmark3 ...
create + access
pure dict : 0.0107021331787
Namespace as dict : 3.95416998863 ( 36947 %)
Namespace as object: 4.02670288086 ( 37625 %)
access only
pure dict : 0.00716400146484
Namespace as dict : 3.73691916466 ( 52162 %)
Namespace as object: 3.7946138382 ( 52967 %)
Commit: cf14a297879ca2c83c17a3e14f95ff094e7047c2
https://github.com/buildbot/buildbot/commit/cf14a297879ca2c83c17a3e14f95ff094e7047c2
Author: Pierre Tardy <[email protected]>
Date: 2012-10-02 (Tue, 02 Oct 2012)
Changed paths:
M master/buildbot/util/namespace.py
Log Message:
-----------
_Namespace as a dict subclass implementation
This needs copy of the actually data.
But dict like read access are then native
test_benchmark1 ...
create + access
pure dict : 0.00615882873535
Namespace as dict : 0.456478118896 ( 7411 %)
Namespace as object: 0.478987932205 ( 7777 %)
access only
pure dict : 0.00246000289917
Namespace as dict : 0.00496506690979 ( 201 %)
Namespace as object: 0.0221290588379 ( 899 %)
[OK]
test_benchmark2 ...
create + access
pure dict : 0.00630712509155
Namespace as dict : 0.768087148666 ( 12178 %)
Namespace as object: 0.792205810547 ( 12560 %)
access only
pure dict : 0.00248885154724
Namespace as dict : 0.00506806373596 ( 203 %)
Namespace as object: 0.0225648880005 ( 906 %)
[OK]
test_benchmark3 ...
create + access
pure dict : 0.0112509727478
Namespace as dict : 9.57195401192 ( 85076 %)
Namespace as object: 9.70584011078 ( 86266 %)
access only
pure dict : 0.00751686096191
Namespace as dict : 0.027991771698 ( 372 %)
Namespace as object: 0.168903112411 ( 2246 %)
Signed-off-by: Pierre Tardy <[email protected]>
Commit: 548849afd3d84ad9e2d546f5eea33fbd6baed493
https://github.com/buildbot/buildbot/commit/548849afd3d84ad9e2d546f5eea33fbd6baed493
Author: Pierre Tardy <[email protected]>
Date: 2012-10-02 (Tue, 02 Oct 2012)
Changed paths:
M master/buildbot/util/namespace.py
Log Message:
-----------
try to avoid data copy. This does not work, as dict is a native
class, and its method cannot be changed.
Commit: d137598c5ea969656d63331fc5f50bc54cb303d0
https://github.com/buildbot/buildbot/commit/d137598c5ea969656d63331fc5f50bc54cb303d0
Author: Pierre Tardy <[email protected]>
Date: 2012-10-02 (Tue, 02 Oct 2012)
Changed paths:
M master/buildbot/util/namespace.py
Log Message:
-----------
Revert "try to avoid data copy. This does not work, as dict is a native"
This reverts commit 68b982561e3442ada73a9d0dbaf5960a43a68764.
Commit: b60e33e989cae55768355b2cf0ece024c0bb4708
https://github.com/buildbot/buildbot/commit/b60e33e989cae55768355b2cf0ece024c0bb4708
Author: Pierre Tardy <[email protected]>
Date: 2012-10-02 (Tue, 02 Oct 2012)
Changed paths:
M master/buildbot/util/namespace.py
Log Message:
-----------
namespace: final implementation
We translate inner dicts on the fly. This is thus
a good compromise
test_benchmark1 ...
create + access
pure dict : 0.00651502609253
Namespace as dict : 0.152539968491 ( 2341 %)
Namespace as object: 0.173326015472 ( 2660 %)
access only
pure dict : 0.00234913825989
Namespace as dict : 0.0270440578461 ( 1151 %)
Namespace as object: 0.0485229492188 ( 2065 %)
[OK]
test_benchmark2 ...
create + access
pure dict : 0.00629901885986
Namespace as dict : 0.31452703476 ( 4993 %)
Namespace as object: 0.336041927338 ( 5334 %)
access only
pure dict : 0.00247311592102
Namespace as dict : 0.154057979584 ( 6229 %)
Namespace as object: 0.179447889328 ( 7255 %)
[OK]
test_benchmark3 ...
create + access
pure dict : 0.0114121437073
Namespace as dict : 0.848978042603 ( 7439 %)
Namespace as object: 1.067289114 ( 9352 %)
access only
pure dict : 0.00813007354736
Namespace as dict : 0.208504915237 ( 2564 %)
Namespace as object: 0.392553091049 ( 4828 %)
Commit: 249732f58a6bf2f825dfea92dc44240a31d24ccf
https://github.com/buildbot/buildbot/commit/249732f58a6bf2f825dfea92dc44240a31d24ccf
Author: Pierre Tardy <[email protected]>
Date: 2012-10-02 (Tue, 02 Oct 2012)
Changed paths:
M master/buildbot/test/unit/test_util_namespace.py
M master/buildbot/util/namespace.py
Log Message:
-----------
more optimization
After reflexion, it looks that we need to optimize read access
time rather than creation time.
Commit: 1a644e892fd62ea16b85a00913cd6b5fb3231af9
https://github.com/buildbot/buildbot/commit/1a644e892fd62ea16b85a00913cd6b5fb3231af9
Author: Pierre Tardy <[email protected]>
Date: 2012-10-02 (Tue, 02 Oct 2012)
Changed paths:
M master/buildbot/test/unit/test_util_namespace.py
Log Message:
-----------
remove the inheritence forbid from the specs
Implementing it will impact performance
http://code.activestate.com/recipes/141933-forbidding-inheritance/
Signed-off-by: Pierre Tardy <[email protected]>
Commit: ec125d1fc0fb2f36fc94fffebc4d8228164079af
https://github.com/buildbot/buildbot/commit/ec125d1fc0fb2f36fc94fffebc4d8228164079af
Author: Dustin J. Mitchell <[email protected]>
Date: 2012-10-02 (Tue, 02 Oct 2012)
Changed paths:
M master/buildbot/test/__init__.py
A master/buildbot/test/unit/test_util_namespace.py
A master/buildbot/util/namespace.py
Log Message:
-----------
Merge branch 'yamlconfig' of git://github.com/tardyp/buildbot
Compare:
https://github.com/buildbot/buildbot/compare/1fa1c4fc511e...ec125d1fc0fb
------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
Buildbot-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/buildbot-commits