Clone performance for files consisting of many zeros differs significantly on Linux and Windows.

Schueler Nikolaus (LQKG IT RDS) Nikolaus.Schueler at lantiq.com
Mon Nov 5 11:53:24 CST 2012


Hi Matt,

> -----Original Message-----
> From: Matt Mackall [mailto:mpm at selenic.com]
> Sent: Freitag, 2. November 2012 14:43
> To: Schueler Nikolaus (LQKG IT RDS)
> Cc: mercurial-devel at selenic.com
> Subject: Re: Clone performance for files consisting of many zeros differs
> significantly on Linux and Windows.
> 
> On Fri, 2012-11-02 at 11:24 +0000, Schueler Nikolaus (LQKG IT RDS)
> wrote:
> > Hi all,
> >
> > there seems to be a problem with cloning big files consisting only of
> > zeros. Cloning times for Linux and Windows differ quite a lot. Any
> > idea about that?
> 
> Try --profile.
> 
here's the output from profiling on Windows:

D:\Users\schueler\tmp>"c:\Program Files\Mercurial\hg.exe" clone https://mtstest.
lantiq.com/~hgtest/repo/HGSUP-779/manyzeros --profile
*** failed to import extension hglock: No module named hglock
http authorization required
realm: hgtest team repos
user: schueler
password:
destination directory: manyzeros
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   CallCount    Recursive     Total(s)    Inline(s) module:lineno(function)
          15            0    137.0120    134.8801   <mercurial\util.pyc>:897(rea
d)
       +1005            0      2.1255      0.0088   +<mercurial\util.pyc>:884(sp
litbig)
       +2021            0      0.0027      0.0027   +<len>
       +1004            0      0.0019      0.0019   +<method 'append' of 'collec
tions.deque' objects>
       +1017            0      0.0016      0.0016   +<method 'popleft' of 'colle
ctions.deque' objects>
         +14            0      0.0000      0.0000   +<method 'appendleft' of 'co
llections.deque' objects>
          16            0      7.4624      7.4624   <msvcrt.getch>
          47            0      6.5210      6.5210   <method 'write' of 'file' ob
jects>
         250            0      3.5669      3.5669   <built-in method compress>
        2681            0      2.9728      2.9728   <built-in method read>
          12            0      1.5283      1.5283   <method 'update' of '_hashli
b.HASH' objects>
           2            0      1.0470      1.0470   <zlib.decompress>
        1003            0      0.9601      0.9601   <built-in method decompress>

          10            0      0.6300      0.6300   <_ssl.sslwrap>
         307          200      0.9019      0.6215   <__import__>
          +1            0      0.1864      0.0027   +<urllib.pyc>:23(<module>)
          +1            0      0.0134      0.0017   +<urlparse.pyc>:29(<module>)

          +1            0      0.0261      0.0011   +<logging\__init__.pyc>:24(<
module>)
          +1            0      0.0016      0.0011   +<httplib.pyc>:67(<module>)
          +1            0      0.0016      0.0010   +<base64.pyc>:3(<module>)
           3            0      3.8249      0.2567   <mercurial\revlog.pyc>:982(c
ompress)
        +250            0      3.5669      3.5669   +<built-in method compress>
        +251            0      0.0005      0.0005   +<method 'append' of 'list'
objects>
          +1            0      0.0004      0.0004   +<method 'join' of 'str' obj
ects>
          +2            0      0.0002      0.0002   +<zlib.compress>
          +1            0      0.0001      0.0001   +<map>
          10            0      0.2162      0.2162   <built-in method do_handshak
e>
           6            0      0.2055      0.2055   <imp.load_dynamic>
          10            0      0.1169      0.1169   <_socket.getaddrinfo>
           1            0      0.0842      0.0842   <_socket.gethostname>

Regards

Nik



More information about the Mercurial-devel mailing list