<br><br>On Thursday, March 15, 2012, Armin Rigo &lt;<a href="mailto:arigo@tunes.org">arigo@tunes.org</a>&gt; wrote:<br>&gt; Hi,<br>&gt;<br>&gt; On Wed, Mar 14, 2012 at 03:19, Peter Cock &lt;<a href="mailto:p.j.a.cock@googlemail.com">p.j.a.cock@googlemail.com</a>&gt; wrote:<br>
&gt;&gt; I don&#39;t know - I was assuming any buffering would be the same<br>&gt;&gt; comparing PyPy 1.8 against Python 2.6 (and 3.2). That was one<br>&gt;&gt; reason for my email - is binding to C relatively slow (compared to<br>
&gt;&gt; the rest of PyPy running pure Python)?<br>&gt;<br>&gt; Not necessarily.  You get direct C calls, both from the translated<br>&gt; pypy and from JITted assembler code.  There are performance hits when<br>&gt; e.g. the C library relies on macros, but I don&#39;t think that&#39;s the case<br>
&gt; of zlib.<br>&gt;<br>&gt; Passing big strings around, on the other hand, is typically slower on<br>&gt; PyPy because they need to be copied between GC-managed areas and<br>&gt; non-GC-managed areas.  There are vague ideas on how to improve but<br>
&gt; nothing I can summarize in two words.<br>&gt;<br>&gt; At this level, for profiling, you can use valgrind.  You&#39;ll see the<br>&gt; time spent in zlib itself, the time spent copying big strings around,<br>&gt; and the time spent actually executing the JIT-generated assembler<br>
&gt; (this ends up in &quot;functions&quot; with no name, just an address).<br><br>I think in my case it could be this &quot;big string&quot; issue then, rather<br>than the interface with zlib  itself. I&#39;m dealing with 64kb chunks<br>
of data which are zlib compressed, and I&#39;m using (bytes) strings<br>to hold these in Python.<br><br>I&#39;ve used valgrind before, but never with PyPy - hopefully I can<br>find some time to dig into this a bit further.<br>
<br>Thanks,<br><br>Peter<br><br>P.S. This is for blocked gzip format (BGZF) if you&#39;re curious,<br><a href="http://blastedbio.blogspot.com/2011/11/bgzf-blocked-bigger-better-gzip.html">http://blastedbio.blogspot.com/2011/11/bgzf-blocked-bigger-better-gzip.html</a><br>