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

Cevap