hgext/progress.py
author Gregory Szorc <gregory.szorc@gmail.com>
Mon, 05 Oct 2015 17:36:32 -0700
changeset 26480 6ae14d1ca3aa
parent 26073 5ef327e9c157
permissions -rw-r--r--
util.chunkbuffer: avoid extra mutations when reading partial chunks Previously, a read(N) where N was less than the length of the first available chunk would mutate the deque instance twice and allocate a new str from the slice of the existing chunk. Profiling drawed my attention to these as a potential hot spot during changegroup reading. This patch makes the code more complicated in order to avoid the aforementioned 3 operations. On a pre-generated mozilla-central gzip bundle, this series has the following impact on `hg unbundle` performance on my MacBook Pro: before: 358.21 real 317.69 user 38.49 sys after: 301.57 real 262.69 user 37.11 sys delta: -56.64 real -55.00 user -1.38 sys
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     1
# progress.py show progress bars for some actions
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     2
#
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     3
# Copyright (C) 2010 Augie Fackler <durin42@gmail.com>
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     4
#
15772
83a140752239 progress: Use the same GPL boilerplate as most hg files
Augie Fackler <durin42@gmail.com>
parents: 15662
diff changeset
     5
# This software may be used and distributed according to the terms of the
83a140752239 progress: Use the same GPL boilerplate as most hg files
Augie Fackler <durin42@gmail.com>
parents: 15662
diff changeset
     6
# GNU General Public License version 2 or any later version.
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     7
25522
15c2c580b2a7 progress: deprecate the progress extension
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25521
diff changeset
     8
"""show progress bars for some actions (DEPRECATED)
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
     9
25522
15c2c580b2a7 progress: deprecate the progress extension
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25521
diff changeset
    10
This extension has been merged into core, you can remove it from your config.
15c2c580b2a7 progress: deprecate the progress extension
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25521
diff changeset
    11
See hg help config.progress for configuration options.
10434
ad104a786d35 Progress bar extension
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
    12
"""
26073
5ef327e9c157 progress: restore testedwith to the stub
Augie Fackler <augie@google.com>
parents: 25522
diff changeset
    13
# Note for extension authors: ONLY specify testedwith = 'internal' for
5ef327e9c157 progress: restore testedwith to the stub
Augie Fackler <augie@google.com>
parents: 25522
diff changeset
    14
# extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
5ef327e9c157 progress: restore testedwith to the stub
Augie Fackler <augie@google.com>
parents: 25522
diff changeset
    15
# be specifying the version(s) of Mercurial they are tested with, or
5ef327e9c157 progress: restore testedwith to the stub
Augie Fackler <augie@google.com>
parents: 25522
diff changeset
    16
# leave the attribute unspecified.
5ef327e9c157 progress: restore testedwith to the stub
Augie Fackler <augie@google.com>
parents: 25522
diff changeset
    17
testedwith = 'internal'