Új hozzászólás Aktív témák
-
Fecogame
veterán
Nekem meglepő volt, hogy bizonyos esetben 240x gyorsabb a Python, mint a shell script.
Lassú a mobilinterneted? 4G/LTE antennák, közvetlenül raktárról ---> http://bit.ly/LTE_Antennak
-
Jester01
veterán
A python érzékeny a whitespace-re, értelmes ember ezért nem is használja. Ez csak azért különösen vicces mert a cikkben lévő kód is rossz ilyen szempontból
Mivel az első shell scriptben bash van, ezért a másodikat is át lehet írni bash-ra, hogy ne indítson minden alkalommal külső processzt az expr miatt, imígyen:
#!/bin/bash
a=0
while [ $a -lt 90000 ]
do
echo $a
a=$((a + 1))
doneEz nálam pontosan olyan gyors mint a python (terminál output limit lehet).
Jester
-
dabadab
titán
Persze, mert shellből folyamatosan külső processzeket indítasz el.
Próbáld meg pl a while-t így, nagyjából két nagyságrenddel lesz gyorsabb:
#!/bin/bash
a=0
while [ $a -lt 9000 ] ; do
echo $a
let a++
doneszerk: így jár az, aki hsz írása közben elmegy ebédelni
[ Szerkesztve ]
DRM is theft
-
Jester01
veterán
Ugye láttad, hogy a cikkben is elromlott az indentáció QED.
Majd biztos én fogom mindig kézzel javítgatni ha valahol elveszik...Kompatibilitásról meg hírből sem hallottak a kedves python fejlesztők. Ilyen-olyan scriptek miatt amik csak a saját minor (!) verziójukkal mennek, most is van telepítve 2.4, 2.5, 2.6, 2.7, 3.0, 3.1 és 3.2... köszönöm, de ne szemeteljék már tele a gépemet.
[ Szerkesztve ]
Jester
-
Feruendios
aktív tag
Ne szorakozz Py-vel meg Bash-el rakj fel egy Node-ot.
Sajnos mar nincs magyar billentyuzetem :(
-
vargalex
félisten
Shell script megoldás:
#!/bin/sh
echo {1..90000} | tr ' ' '\n'Alex
-
sztanozs
veterán
from timeit import default_timer as timer
def testTime(execution):
start = timer()
execution()
end = timer()
return(execution.__name__, end - start)
def while1():
count = 9000
while count:
count = count - 1
print(9000-count)
pass
def while2():
count = 0
while (count < 90000):
count += 1
print(count)
pass
def for1():
for i in range(1,90000):
print(i)
pass
de = {}
a,b = testTime(while1)
de[a] = b
a,b = testTime(while2)
de[a] = b
a,b = testTime(for1)
de[a] = b
print(de)Eredmény:
{
'while1': 0.017804100422010548,
'while2': 0.2117797429410634,
'for1': 0.2141544650973869
}[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
buherton
őstag
Nem tartom szerencsésnek az stdout-ra kiírással járó teszteknek. A programok jó részt úgy sem így működnek.
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
RazorSh4rk
kezdő
Ezzel az a baj, hogy a futás nagy része az std művelet.
e
-
sztanozs
veterán
Persze jól elírtarm - 9.000 a 90.000 helyett az első while-ban.
Helyesen így jön az eredmény:{
'while1': 0.1950779151163773,
'while2': 0.21067238546805514,
'for1': 0.1862087994069625
}JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
nagyúr
Ha egyszer érteném a programozást....
-
RazorSh4rk
kezdő
Nem túl reprezentatív, mert nem pi-n fut, de ha valaki még egyszer azt mondja, hogy a java lassú..
e
-
sztanozs
veterán
válasz RazorSh4rk #13 üzenetére
Aha, és ez mi?
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
dabadab
titán