Article View: pl.comp.lang.python
Article #26652Wydajność jythona (było Re: python vs php - potrzebne argumenty)
From: Marcin Kasperski
Date: Tue, 24 Nov 2009 10:08
Date: Tue, 24 Nov 2009 10:08
57 lines
3713 bytes
3713 bytes
> * Jython - kilka razy szybszy od CPython, tylko trochę wolniejszy od
> zwykłej Javy
To jest zwyczajna nieprawda, przynajmniej w ogólności. Robiłem parę
prostych benchmarków (dla kodu "algorytmicznego") i Jython był znacznie
*wolniejszy* od CPythona. Przykładowo, kawałek skryptu liczącego liczby
pierwsze sitem jest na jythonie sześć razy wolniejszy:
$ time python pierwsze.py
Jest 348514 liczb pierwszych mniejszych od 5000000
real 0m1.521s
user 0m1.464s
sys 0m0.032s
$ time jython pierwsze.py
Jest 348514 liczb pierwszych mniejszych od 5000000
real 0m9.596s
user 0m10.441s
sys 0m0.256s
$ python
Python 2.6.4 (r264:75706, Nov 2 2009, 14:38:03)
[GCC 4.4.1] on linux2
$ jython
Jython 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54)
[Java HotSpot(TM) Server VM (Sun Microsystems Inc.)] on java1.6.0_16
Skrypt (przypadkowy skrawek z okołoprojecteulerowych zabaw):
---------------------------------------------------------------
# -*- coding: utf-8 -*-
from math import sqrt, ceil, log
from itertools import cycle
def primes_up_to_sieve_odd(maximum):
"""
Minimalne kółko - sprawdzamy tylko 2t+1 i skaczemy o 2
"""
# is_prime[h] to charakterystyka 2h+1
is_prime = [True for h in xrange(0, maximum/2 + 1)]
x = 3
while x * x <= maximum:
if is_prime[(x-1)/2]:
for y in xrange(x*x, maximum+1, 2*x):
#print "Clearing %d/%d for %d" % (y,(y-1)/2, x)
is_prime[(y-1)/2] = False
x += 2
return [2] + [ 2*h + 1 for h in xrange(1,maximum/2) if is_prime[h] ]
MAX = 5000000
primes = primes_up_to_sieve_odd(MAX)
print "Jest %d liczb pierwszych mniejszych od %d" % (len(primes), MAX)
---------------------------------------------------------------
Technical Details
Message-ID:
<87bpis9qvi.fsf_-_@mekk.waw.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!newsfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!bozon.softax.pl!newsReferences:
<h83in7$rl3$1@inews.gazeta.pl> <op.u3ngjef4eaqjf2@jzabielloosx.dubtilt.local> <ebb48508-1e60-47a3-87ab-8b4ccebeeba0@a32g2000yqm.googlegroups.com> <op.u3nkjowaeaqjf2@jzabielloosx.dubtilt.local> <17047610-9db9-47fc-9d8f-c476d2009b37@s15g2000yqs.googlegroups.com> <op.u3ore7useaqjf2@macbook-pro-15-zbiru.local> <1ed24c15-19ff-4a55-872c-ed0ecc3302c9@p8g2000yqb.googlegroups.com> <221dc55c-d636-44f1-bf11-c437e392aa69@j19g2000yqk.googlegroups.com> <he7dc2$q7s$1@news.lublin.pl> <3d4aa257-cd86-4220-9917-e7ff6af41193@d5g2000yqm.googlegroups.com> <556ac98b-668b-4b4a-8373-46ed23c0735d@o31g2000vbi.googlegroups.com> <2986fd9f-56a1-41b9-811e-4f27a4b1a8ac@o13g2000vbl.googlegroups.com> <fb102619-d0ae-46de-9078-55561f655075@33g2000vbe.googlegroups.com> <7cf465d2-a344-4a63-9fbc-a8e2d5c72e90@v37g2000vbb.googlegroups.com> <0477cb5d-8df9-4ac6-a8f3-00dd75dc9b61@33g2000vbe.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!newsfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!bozon.softax.pl!news From: Marcin Kasperski <Marcin.Kasperski@mekk.waw.pl> Newsgroups: pl.comp.lang.python Subject: Wydajność jythona (było Re: python vs php - potrzebne argumenty) Date: Tue, 24 Nov 2009 11:08:49 +0100 Organization: Mekk Lines: 59 Message-ID: <87bpis9qvi.fsf_-_@mekk.waw.pl> References: <h83in7$rl3$1@inews.gazeta.pl> <op.u3ngjef4eaqjf2@jzabielloosx.dubtilt.local> <ebb48508-1e60-47a3-87ab-8b4ccebeeba0@a32g2000yqm.googlegroups.com> <op.u3nkjowaeaqjf2@jzabielloosx.dubtilt.local> <17047610-9db9-47fc-9d8f-c476d2009b37@s15g2000yqs.googlegroups.com> <op.u3ore7useaqjf2@macbook-pro-15-zbiru.local> <1ed24c15-19ff-4a55-872c-ed0ecc3302c9@p8g2000yqb.googlegroups.com> <221dc55c-d636-44f1-bf11-c437e392aa69@j19g2000yqk.googlegroups.com> <he7dc2$q7s$1@news.lublin.pl> <3d4aa257-cd86-4220-9917-e7ff6af41193@d5g2000yqm.googlegroups.com> <556ac98b-668b-4b4a-8373-46ed23c0735d@o31g2000vbi.googlegroups.com> <2986fd9f-56a1-41b9-811e-4f27a4b1a8ac@o13g2000vbl.googlegroups.com> <fb102619-d0ae-46de-9078-55561f655075@33g2000vbe.googlegroups.com> <7cf465d2-a344-4a63-9fbc-a8e2d5c72e90@v37g2000vbb.googlegroups.com> <0477cb5d-8df9-4ac6-a8f3-00dd75dc9b61@33g2000vbe.googlegroups.com> NNTP-Posting-Host: 83.18.189.42 Mime-Version: 1.0 X-Trace: nemesis.news.neostrada.pl 1259058351 15208 83.18.189.42 (24 Nov 2009 10:25:51 GMT) X-Complaints-To: usenet@news.neostrada.pl NNTP-Posting-Date: Tue, 24 Nov 2009 10:25:51 +0000 (UTC) X-Url: http://mekk.waw.pl User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:EtRJ5ioisjVs3p8Ku8ivtEILfpM= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit