Ja 100% richtig ... das ist, wenn Sie noch frühe Version von PHP
wie PHP 5.1.2
-PHP 5.2.2
PHP verwenden in stabilste Version von PHP
übel nehmen sie gleich und md5
laufen etwas schneller in einigen Versionen sind
Here is a simple test in most PHP version
Sie müssen auch, dass bench mark Verfahren zu beachten ist falsch und Wechselposition das Ergebnis beeinflussen ... So besseres Ergebnis zu erzielen.
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>';
Ausgabe
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
Es kann sein, weil 'md5()' ein Alias von 'Hash ist ("md5")' und deshalb verlangsamt es. Ziehe mich nicht darauf an. –
Beachten Sie, dass die Daten, die in der von Ihnen freigegebenen Verbindung verwendet werden, sehr klein sind - wenn Sie die MD5 einer großen Datei berechnen, sollte der Unterschied sehr klein sein. –
Wie C. sagte, versuchen Sie es auf größeren Daten. Jeder Alias in PHP benötigt mehr Zeit, da der Parser die Suche zweimal durchführt. Zuerst sucht es nach Alias und dann nach Originalfunktion. Es ist ein PHP-Problem, aber es erlaubt nicht den Datentyp anzugeben. Das gleiche, was Sie für Wert-Cast haben. (int) ist viel schneller als intval(). Es ist kein Alias, aber der Ausführungszeitunterschied ist ziemlich groß. – imclickingmaniac