Evet% 100 doğru ... En bazı sürümlerinde biraz daha hızlı aynı ve md5
yayınlanabilecekleri PHP
kararlı sürümü yeniden gönderilmesini de yine PHP
böyle PHP 5.2.2
-PHP 5.1.2
olarak PHP erken sürümünü kullanıyorsanız olmasıdır
Here is a simple test in most PHP version
Ayrıca bu röper yöntemi yanlış ve pozisyon sonucunu etkileyebilecek değişen unutmayın gerekir ... Bu daha iyi sonuç almak için nasıl.
set_time_limit(0);
echo "<pre>";
function m1($total) {
for($i = 0; $i < $total; $i ++)
hash('md5', 'string');
}
function m2($total) {
for($i = 0; $i < $total; $i ++)
md5('string');
}
function m3($total) {
for($i = 0; $i < $total; $i ++)
hash('sha1', 'string');
}
function m4($total) {
for($i = 0; $i < $total; $i ++)
sha1('string');
}
function m5($total) {
for($i = 0; $i < $total; $i ++)
hash('md5', $i);
}
function m6($total) {
for($i = 0; $i < $total; $i ++)
md5($i);
}
function m7($total) {
for($i = 0; $i < $total; $i ++)
hash('sha1', $i);
}
function m8($total) {
for($i = 0; $i < $total; $i ++)
sha1($i);
}
$result = array(
'm1' => 0,
'm2' => 0,
'm3' => 0,
'm4' => 0,
'm5' => 0,
'm6' => 0,
'm7' => 0,
'm8' => 0
);
$total = 10000;
for($i = 0; $i < 100; ++ $i) {
foreach (array_keys($result) as $key) {
$alpha = microtime(true);
$key($total);
$result[$key] += microtime(true) - $alpha;
}
}
echo '<pre>';
echo "Single Run\n";
print_r($result);
echo '</pre>';
Çıkış
Single Run
Array
(
[m1] => 0.58715152740479 <--- hash/md5/string
[m2] => 0.41520881652832 <--- md5/string
[m3] => 0.79592990875244 <--- hash/sha1/string
[m4] => 0.61766123771667 <--- sha1/string
[m5] => 0.67594528198242 <--- hash/md5/$i
[m6] => 0.51757597923279 <--- md5/$i
[m7] => 0.90692067146301 <--- hash/sha1/$i
[m8] => 0.74792814254761 <--- sha1/$i
)
Live Test
'MD5()' 'karma ("MD5") 'ait bir takma ve bu nedenle bunu yavaşlatır çünkü olabilir. Bununla ilgili bana alıntı yapma. –
Paylaştığınız bağlantıda kullanılan verilerin çok küçük olduğunu unutmayın - büyük bir dosyanın md5 değerini hesaplarsanız, fark çok küçük olmalıdır. –
C. Daha büyük veri üzerinde denemeyi söylediği gibi. Php'deki her diğer ad daha fazla zaman alır çünkü ayrıştırıcı aramayı iki kez yapar. İlk kez diğer adı ve ardından orijinal işlevini arar. Bu tür bir php problemi, ancak veri tipini belirtmemize izin veriyor. Değer için sahip olduğunuzla aynı şey. (int) sonra intval() daha hızlı olacaktır. Takma ad değil, ancak yürütme süresi farkı oldukça büyük. – imclickingmaniac