MarisO Februāris 5, 2014 Share Februāris 5, 2014 Eiklīds gan tev pašvaks. C man uz 6+ gadus vecā laptopa 4'000'000'000 iterācijas sarēķina 4.3 sekundēs C ir ātrāks par JVM. Uzminiet nu, kāpēc tā Lai a * b nedabon overflow Link to comment Share on other sites More sharing options...
binary Februāris 5, 2014 Share Februāris 5, 2014 C ir ātrāks par JVM. Tad jau tava programma pēc definīcijas nevar būt labāka Pitons (kaut kāds 2.7), ap 0.07 msecs. Javu gan nevarēšu paskatīties. from time import clock def gcd(a, b): while a != b: tmp = min(a, b) a, b = tmp, max(a, b) - tmp return a def lcm(a, b): return a / gcd(a, b) * b iterations = 100000 clock() for i in xrange(iterations): lcm(89248, 91176) print clock() / iterations * 1000, "msecs" print lcm(89248, 91176) Link to comment Share on other sites More sharing options...
nevertell Februāris 5, 2014 Share Februāris 5, 2014 Oj oj oj, bet Mairi, vai tad tu neteici, ka Java ir visu valodu valoda un pēdējās relīzēs notiek runtime optimizācijas, kas iterācijas padara vēl ātrākas par kodu, kas kompilēts ar C ? Link to comment Share on other sites More sharing options...
binary Februāris 5, 2014 Share Februāris 5, 2014 Tpfu… Dīvains man tas gcd Pitonā laikam šādi būtu pareizāk: def gcd(a, b): while b != 0: a, b = b, a % b return a Attiecīgi arī ātrums palielinās - 0.003 msec pitonā (iepriekšējo 0.07 msec vietā). Link to comment Share on other sites More sharing options...
MarisO Februāris 5, 2014 Share Februāris 5, 2014 (labots) Java nemaz nav lieliska valoda un par JIT viņi tikai tā saka, ka būs ātrāks par C. Vai tik Clojures Eiklīds nav ātrāks par pitonu ? sandbox.lcm> (time (doseq [x (range 100000)] (lcm 89248 91176))) "Elapsed time: 182.274 msecs" nil sandbox.lcm> (/ 182.274 100000) 0.00182274 var loop un type hints pamēģināt (defn lcm9 ^Integer [^Integer aa ^Integer bb] (loop [^int a aa ^int b bb] (if (zero? b) (* bb (/ aa a)) (recur b (rem a b))))) sandbox.lcm> (time (doseq [x (range 100000)] (lcm9 89248 91176))) "Elapsed time: 109.86 msecs" nil sandbox.lcm> (/ 109.86 100000) 0.0010986 tas viss protams nav nopietni, ja grib ātrumu, tad to bināro algoritmu jāuzkodē iekš c Labots Februāris 5, 2014 - MarisO Link to comment Share on other sites More sharing options...
binary Februāris 5, 2014 Share Februāris 5, 2014 Vai tik Clojures Eiklīds nav ātrāks par pitonu ? Kas to lai zina. Nav jau zināms, kas tev par dzelzi. Pieļauju, ka dažas reizes jaudīgāks par manējo Link to comment Share on other sites More sharing options...
MarisO Februāris 5, 2014 Share Februāris 5, 2014 Model Name: MacBook Pro Processor Name: Intel Core 2 Duo Processor Speed: 2.53 GHz Total Number of Cores: 2 L2 Cache: 3 MB Memory: 8 GB Link to comment Share on other sites More sharing options...
binary Februāris 6, 2014 Share Februāris 6, 2014 CPU - Turion 58TL 1.9GHz RAM - principā pofig, tam te īsti nav ko ietekmēt. Bet nu 2x DOPE1B163B2 (kopumā 4GB DDR2-667 SDRAM). Link to comment Share on other sites More sharing options...
bubu Februāris 9, 2014 Share Februāris 9, 2014 Pitonā laikam šādi būtu pareizāk: Vispareizāk pitonā būtu šādi: from fractions import gcd 1 Link to comment Share on other sites More sharing options...
canis_lupus Februāris 9, 2014 Share Februāris 9, 2014 Man rodas iespaids, ka tēmas autors neiebrauc savos iepostētajos koda fragmentos, pirmajos postos ož pēc kopīpeista, tālāk jau kaut kādi komentāri kodā un finālā autora rakstīti komentāri, kuros ir jūtams, ka cilvēks atpazīst atsevišķas koda funkcionējošās daļas, bet tā īsti neizkož visu programmu kopumā. Vismaz cilvēks tika pie vērtējums Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!