From pypy-dev Thu Sep 08 07:57:54 2011 From: David Fraser Date: Thu, 08 Sep 2011 07:57:54 +0000 To: pypy-dev Subject: Re: [pypy-dev] deepcopy slower in PyPY ?! Message-Id: <62768815-4ddc-43c4-9b3b-2d375dccf5a5 () jackdaw ! local> X-MARC-Message: https://marc.info/?l=pypy-dev&m=131546920511493 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--=_046662ad-f913-4f52-bc41-c0a589bb6180" --=_046662ad-f913-4f52-bc41-c0a589bb6180 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Wednesday, September 7, 2011 at 10:38:10 PM, Maciej Fijalkowski wrote: > On Wed, Sep 7, 2011 at 8:16 PM, Antonio Cuni > wrote: > > Hi Jorge, > > > > On 07/09/11 16:43, Jorge de Jesus wrote: > >> > >> =C2=A0Hi to all > >> > >> I've benchmark/profile =C2=A0some code (PyWPS API) and PyPy-c is 2/3x > >> times > >> slower than CPython. =C2=A0This was done in a virtual machine using > >> x86_64 > >> > >> The code being benchmark spends most of the time making calls to > >> copy/deepcopy. =C2=A0I've found that this was an issue in PyPy 1.6 > >> (https://bugs.pypy.org/issue767), but the issue has been closed. > >> So I've > >> downloaded the latest dev version but PyPy-c continues to be slow > >> compared to CPython. > > > > could you please send us a benchmark which showcases the problem? > > The > > smaller the better, ideally a benchmark which is contained in a > > single file > > is easier to run and debug than one which involves to download lots > > of code > > from the internet. > > the internet is not the problem here ;-) So here's my benchmark of doing a copy.deepcopy of the internet - or at lea= st, of the ipv4 address space... (unfortunately it needs to download that, = but caches if possible, and doesn't time that) In this case it's only testing copying nested xml elementtree nodes, and so= me basic dicts. It actually shows a remarkable improvement in pypy; here ar= e the average speeds per copy for 100 and 1000 repeats (showing how the JIT= kicks in in pypy) executable repeats etree dicts cpython2.6 100 37.17 3.98 cpython2.6 1000 36.42 3.97 cpython2.7 100 58.10 4.38 cpython2.7 1000 57.29 4.06 cpython3.2 100 57.41 3.61 cpython3.2 1000 56.98 3.68 pypy1.5.0 100 32.08 1.34 pypy1.5.0 1000 25.54 1.11 pypy1.6.0 100 25.89 1.17 pypy1.6.0 1000 16.32 0.81 So, pypy can even speed up copying the internet :) Cheers David --=_046662ad-f913-4f52-bc41-c0a589bb6180 Content-Type: text/x-python; name=benchmark_internet.py Content-Disposition: attachment; filename=benchmark_internet.py Content-Transfer-Encoding: base64 IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCgppbXBvcnQgb3MKdHJ5OgogICAgZnJvbSB1cmxsaWIyIGlt cG9ydCB1cmxvcGVuCmV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgIGZyb20gdXJsbGliLnJlcXVlc3Qg aW1wb3J0IHVybG9wZW4KZnJvbSB4bWwuZXRyZWUgaW1wb3J0IEVsZW1lbnRUcmVlCmltcG9ydCBj b3B5CmltcG9ydCB0aW1laXQKaW1wb3J0IHN5cwoKcHJpbnQoImludGVybmV0IGNvcHlpbmcgYmVu Y2htYXJrOiB0ZXN0aW5nICVzIiAlIHN5cy52ZXJzaW9uKQoKZGVmIGdldF91cmwodXJsLCBjYWNo ZV9maWxlbmFtZSk6CiAgICBpZiBvcy5wYXRoLmV4aXN0cyhjYWNoZV9maWxlbmFtZSk6CiAgICAg ICAgcHJpbnQoInVzaW5nIGNhY2hlZCBkYXRhIikKICAgICAgICByZXR1cm4gb3BlbihjYWNoZV9m aWxlbmFtZSwgInJiIikucmVhZCgpCiAgICBlbHNlOgogICAgICAgIHByaW50KCJkb3dubG9hZGlu ZyBkYXRhIikKICAgICAgICBkYXRhID0gdXJsb3Blbih1cmwpLnJlYWQoKQogICAgICAgIHByaW50 KCJjYWNoaW5nIGRhdGEiKQogICAgICAgIG9wZW4oY2FjaGVfZmlsZW5hbWUsICJ3YiIpLndyaXRl KGRhdGEpCiAgICAgICAgcmV0dXJuIGRhdGEKCmlwdjRfYWRkcmVzc19zcGFjZV9zb3VyY2UgPSBn ZXRfdXJsKCJodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2lwdjQtYWRkcmVzcy1zcGFj ZS9pcHY0LWFkZHJlc3Mtc3BhY2UueG1sIiwgImlwdjQtYWRkcmVzcy1zcGFjZS54bWwiKQpwcmlu dCgicGFyc2luZyBkYXRhIikKaXB2NF9hZGRyZXNzX3NwYWNlX2V0cmVlID0gRWxlbWVudFRyZWUu ZnJvbXN0cmluZyhpcHY0X2FkZHJlc3Nfc3BhY2Vfc291cmNlKQppcHY0X2FkZHJlc3Nfc3BhY2Vf ZGljdHMgPSBbZGljdCgoY2hpbGQudGFnLCBjaGlsZC50ZXh0KSBmb3IgY2hpbGQgaW4gcmVjb3Jk LmdldGNoaWxkcmVuKCkpIGZvciByZWNvcmQgaW4gaXB2NF9hZGRyZXNzX3NwYWNlX2V0cmVlLmZp bmRhbGwoIntodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzfXJlY29yZCIpXQoKIyBwdXQg dGhpcyBzb21ld2hlcmUgYWNjZXNzaWJsZQpjb3B5LmlwdjRfYWRkcmVzc19zcGFjZV9ldHJlZSA9 IGlwdjRfYWRkcmVzc19zcGFjZV9ldHJlZQpjb3B5LmlwdjRfYWRkcmVzc19zcGFjZV9kaWN0cyA9 IGlwdjRfYWRkcmVzc19zcGFjZV9kaWN0cwoKcmVwZWF0cyA9IDEwMDAgaWYgbGVuKHN5cy5hcmd2 KSA8IDIgZWxzZSBpbnQoc3lzLmFyZ3ZbMV0pCnByaW50KCJjb3B5aW5nIGRhdGEgKHRpbWluZyAl ZCByZXBlYXRzKSIgJSByZXBlYXRzKQpldHJlZV9zcGVlZCA9IHRpbWVpdC50aW1laXQoJ2NvcHku ZGVlcGNvcHkoZSknLCAnaW1wb3J0IGNvcHk7IGUgPSBjb3B5LmlwdjRfYWRkcmVzc19zcGFjZV9l dHJlZScsIG51bWJlcj1yZXBlYXRzKSoxMDAwL3JlcGVhdHMKcHJpbnQoImV0cmVlOiAlMC4yZiBt cy9jb3B5IiAlIGV0cmVlX3NwZWVkKQpkaWN0c19zcGVlZCA9IHRpbWVpdC50aW1laXQoJ2NvcHku ZGVlcGNvcHkoZCknLCAnaW1wb3J0IGNvcHk7IGQgPSBjb3B5LmlwdjRfYWRkcmVzc19zcGFjZV9k aWN0cycsIG51bWJlcj1yZXBlYXRzKSoxMDAwL3JlcGVhdHMKcHJpbnQoImRpY3RzOiAlMC4yZiBt cy9jb3B5IiAlIGRpY3RzX3NwZWVkKQoKd2l0aCBvcGVuKCJyZXN1bHRzLnR4dCIsICJhIikgYXMg ZjoKICAgIGYud3JpdGUoIiVzXHQlZFx0JTAuMmZcdCUwLjJmXG4iICUgKHN5cy5leGVjdXRhYmxl LCByZXBlYXRzLCBldHJlZV9zcGVlZCwgZGljdHNfc3BlZWQpKQoK --=_046662ad-f913-4f52-bc41-c0a589bb6180 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev --=_046662ad-f913-4f52-bc41-c0a589bb6180--