~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/xml8.py

  • Committer: John Arbash Meinel
  • Date: 2008-12-10 21:37:12 UTC
  • mto: This revision was merged to the branch mainline in revision 3912.
  • Revision ID: john@arbash-meinel.com-20081210213712-82i1n0uem1crrnoh
Add some more direct timings using time.clock() instead of lsprof.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
from bzrlib import (
21
21
    cache_utf8,
22
22
    errors,
 
23
    fifo_cache,
23
24
    inventory,
24
 
    fifo_cache,
25
25
    revision as _mod_revision,
26
26
    trace,
27
27
    )
376
376
        #   no_copy     2.00s   20.5s
377
377
        #   no_c,dict   1.95s   18.0s
378
378
        # Note that a cache of 10k nodes is more than sufficient to hold all of
379
 
        # the inventory for the last 100 revs.
380
 
        #   With inventory.add() optimizations, and not copying file entries,
381
 
        #   performance gets to 2.00s
 
379
        # the inventory for the last 100 revs for bzr, but not for mysql (20k
 
380
        # is enough for mysql, which saves the same 2s as using a dict)
 
381
 
 
382
        # Breakdown of mysql using time.clock()
 
383
        #   4.1s    2 calls to element.get for file_id, revision_id
 
384
        #   4.5s    cache_hit lookup
 
385
        #   7.1s    InventoryFile.copy()
 
386
        #   2.4s    InventoryDirectory.copy()
 
387
        #   0.4s    decoding unique entries
 
388
        #   1.6s    decoding entries
 
389
        #   0.8s    Adding nodes to FIFO (including flushes)
 
390
        #   0.1s    cache miss lookups
 
391
        # Using an LRU cache
 
392
        #   4.1s    2 calls to element.get for file_id, revision_id
 
393
        #   9.9s    cache_hit lookup
 
394
        #   10.8s   InventoryEntry.copy()
 
395
        #   0.3s    cache miss lookus
 
396
        #   1.2s    decoding entries
 
397
        #   1.0s    adding nodes to LRU
382
398
        key = (file_id, revision)
383
399
        try:
384
400
            # We copy it, because some operatations may mutate it