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

Reply via email to