Threadlerin başlıkları farklı devam ettiği için Barış beyin attığı düzeltmeyi görmemişim. Python scriptinde range 10000 değil 100000 olacak, denerken ben de dikkat etmemişim. Düzeltme ile:
python test.py: Başlangıç = 1260123258.11 Bitiş = 1260123340.4 Süre =~82.29 Php %50 olamasa da %35 daha hızlı çıktı, nedeni diğer threadde tartışılan konular olabilir. time konusunda haklısınız, programın içinden ölçmekten çok daha sağlıklı olacaktır. 2009/12/6 Mehmet Salih YILDIRIM <[email protected]>: > Bu kadar fark olmaması lazım bence. Yorumlayıcıların yaptıkları > optimizasyonları bilmediğimden kesin birşey diyemeyeceğim ancak, > fiziksel zamanı ölçmek yerine cputime değerine bakmak lazım gelir. Şu an > yaptığınız işlemde preemption dolayısı ile eşzamanlı çalışan diğer > process ler de çalışma süresini etkilerler. Ama bir process'in cpu > üzerinde ne kadar süre running durumunda kaldığı tam olarak > karşılaştırılabilecek veridir. Bu yüzden bu şekilde karşılaştırmak yerine > > "time python test.py" komutu ile "time php test.php" komutlarını kullanınız. > > Ozgur Batur wrote: >> Merhaba, >> >> Pazar akşamı yapacak bir işim yok :) >> Scriptleri birebir denedim: >> >> python test.py: >> Başlangıç = 1260120673.71 >> Bitiş = 1260120674.85 >> Süre =~1.14 >> >> php test.php: >> Başlangıç = 1260120770.21 >> Bitiş = 1260120831.07 >> Süre = ~60.86 >> >> Kullandığım python sürümü: 2.6.4rc2 >> Php sürümü: PHP 5.2.10-2ubuntu6.3 with Suhosin-Patch 0.9.7 (cli), Zend >> Engine v2.2.0 >> >> Sonuç python phpden yaklaşık 53 kat daha hızlı çıktı. Üstelik >> verdiğiniz python scriptinde output ekrana basılmasına rağmen php >> scriptinde echo kapalı. Ya bilmediğim çok hızlı bir php yorumlayıcı >> kullanıyorsunuz, ya da yapılandırmanızda bir problem var. >> >> İyi günler, >> >> 2009/12/5 Baris <[email protected]>: >> >>> Merhaba arkadaşlar bu sabah çok ilginç bir durum ile karşılaştım mod_python >>> ile ile ilgili internette gelişmelere bakarken, şöyle iki kod parçacığı >>> gözüme takıldı, konsoldan calıştırılan ve 2 ile 100000 arası asal sayıları >>> bulamak üzere yazılmış python betiği, yine aynı amaç için yazılmış php >>> betiğinden %50 daha yavaş çalışmakta olduğunu sınadım. Nedenini >>> açıklayabilecek arkadaşlar açıklamada bulunabilirse sevinirim. >>> >>> Python için; >>> >>> #!/usr/bin/python >>> # -*- coding: utf-8 -*- >>> import time >>> print time.time() >>> primeNumbers = [] >>> output = [] >>> >>> for i in range(2, 10000): >>> divisible = False >>> for number in primeNumbers: >>> if i % number == 0: >>> divisible = True >>> >>> if divisible == False: >>> primeNumbers.append(i) >>> output.append(str(i)) >>> >>> print ' '.join(output) >>> >>> print time.time() >>> >>> ---------------------------------------- >>> >>> Php için: >>> >>> <?php >>> echo microtime(true) ."\n"; >>> $primeNumbers = array(); >>> $output = ''; >>> >>> for ($i = 2; $i < 100000; $i++) >>> { >>> $divisible = false; >>> foreach ($primeNumbers as $number) >>> { >>> if ($i % $number == 0) >>> { >>> $divisible = true; >>> } >>> } >>> >>> if ($divisible == false) >>> { >>> $primeNumbers[] = $i; >>> $output .= $i; >>> } >>> } >>> >>> #echo $output; >>> echo "\n" . microtime(true) ."\n"; >>> ?> >>> >>> >>> -- >>> Barış ÇUHADAR >>> _______________________________________________ >>> Linux-programlama mailing list >>> [email protected] >>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama >>> Liste kurallari: http://liste.linux.org.tr/kurallar.php >>> >>> >>> >> >> >> >> > _______________________________________________ > Linux-programlama mailing list > [email protected] > http://liste.linux.org.tr/mailman/listinfo/linux-programlama > Liste kurallari: http://liste.linux.org.tr/kurallar.php > -- H Özgür Batur _______________________________________________ Linux-programlama mailing list [email protected] http://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
