Greetings,
As part of on-going performance analysis, and thanks to some python
profiling tips from Rich Lowe, I've managed to get a significant
performance improvement in catalog serialisation, which will in turn
improve the performance of many publication and client operations.
Further optimisation work remains, but this is quite helpful for a
relatively small number of changes:
12123 pkg.server.catalog and pkg.updatelog should be removed or trimmed
15087 catalog serialization makes excessive calls to write
webrev:
http://cr.opensolaris.org/~swalker/pkg-cat/
The trimming of pkg.server.catalog/updatelog helps client startup
performance and slightly reduces client memory usage (cherrypy isn't
loaded anymore). The other changes help general catalog performance.
All of the following tests use an empty user image in /tmp; all times
based on best of three runs.
Please note that the improvements below are far greater than those
realised for a long-running operation such as image-update or a large
install where catalog serialisation is a much smaller percentage of
total operation time. For long-running operations, planning, download,
and plan execution remain the largest percentage of operation time.
Please note that these changes are *not* targeted for 134; I expect this
to be for 135+.
pkg refresh --full (gate tip -> webrev)
==========================================
b133 Core 2 DUO E8400: 20s -> 13s
b132 SPARC T5120: 2m32s -> 1m10s
pkg install --no-index --no-refresh system/manual (download cached)
=================================================
b133 Core 2 DUO E8400: 22s -> 12.4s
b132 SPARC T5120: 3m -> 1m40s
pkg uninstall --no-index system/manual
======================================
b133 Core 2 DUO E8400: 8s -> 4.2s
b132 SPARC T5120: 1m16s -> 35s
Cheers,
--
Shawn Walker
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss