~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/cache_utf8.py

  • Committer: John Arbash Meinel
  • Date: 2006-08-16 22:05:26 UTC
  • mto: This revision was merged to the branch mainline in revision 1942.
  • Revision ID: john@arbash-meinel.com-20060816220526-9e9e34ad909f252d
Document why we use try/except rather than if None

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
           _uni_to_utf8=_unicode_to_utf8_map,
32
32
           _utf8_to_uni=_utf8_to_unicode_map):
33
33
    """Take this unicode revision id, and get a unicode version"""
 
34
    # If the key is in the cache try/KeyError is 50% faster than
 
35
    # val = dict.get(key), if val is None:
 
36
    # On jam's machine the difference is 
 
37
    # try/KeyError:  900ms 
 
38
    #      if None: 1250ms 
 
39
    # Since these are primarily used when iterating over a knit entry
 
40
    # *most* of the time the key will already be in the cache, so use the
 
41
    # fast path
34
42
    try:
35
43
        return _uni_to_utf8[unicode_str]
36
44
    except KeyError: