( uid_6201 | 2013. 02. 05., k – 09:21 )

A múlt héten csináltam teszteket. Egyszerű prímkeresés és vektorban való eltárolás volt a legegyszerűbb módszerrel. Azaz osztó = 2...sqrt(szám) -ig és ha (szám % osztó) sehol sem adott 0 maradékot, akkor prím.

CPU i5-480m 1 szálon 10 millióig (amiből 664578 prím) az alábbit futási időket mértem:

# C
time ./prim-c 7.392s

# Python
time python ./prim.py: 131.220s
time pypy ./prim.py 24.670s

# Lua
time lua prim.lua 57.876s
time luajit-2.0.0-beta9 prim.lua 14.721s

# PHP - zend és a többi nélkül, parancssorból futtatva.
time php prim.php 114.523s

Tanulság#1: lassú szkriptnyelvet másik lassú szkriptnyelvvel hasonlítgatni, hogy melyik a gyorsabb, hát enyhén szólva vicces.
Tanulság#2: JIT sokat segít a szkriptnyelven.

Mellékesen jegyzem meg, hogy a Python-jellegű objektumos szemléletű szkriptnyelvek ügyesebbnek tűnnek számomra. Kérdés, hogy csak én kedvelem, vagy tényleg praktikus megoldás (mármint az objektumos szintaktikája)?

Gondolok erre (akik nem ismerik a Pythont, azoknak: python< enter > és ki lehet próbálni):

s = "almakompot korte banan"
s.split()[0].upper()[4:-2]

s string osztály split metódusát meghívom.
az így kapott listából kiválasztom a nulladik elemet.
majd az így kapott stringet nagybetűssé teszem.
és végül az így kapott string 4. betűtől a vége előtt 2-vel levő betű előttig kiszedem.