2009/12/7 aşkın yollu <[email protected]>

>
>
> 2009/12/6 Ozgur Batur <[email protected]>
>
> 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";
>> >>> ?>
>>
>
> Bende daha ilginç bi durum var, python kısa bir sürede tamamlarken, php
> çook uzun sürüyor, henüz php betiğinin tamamlandığını daha görmedim.
> Yapılandırmayla ilgili sorunlar olabilir.
>
> Bu arada kodların biraz iyileştirmeye ihtiyacı var :)
>
>
Sonunda bitti :)

time php -f asal.php
real    3m36.432s
user    3m30.674s
sys     0m0.520s

time python asal.py
real    0m3.681s
user    0m3.628s
sys     0m0.008s

Python yaklaşık 70 kat daha hızlı çalıştı.

-- 
Aşkın Yollu
http://askin.ws
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap