substr 或 strlen - 哪个性能最好? PHP
substr or strlen - Which offers the best performance? PHP
我需要 运行 检查多个变量,其中一些变量是 url,其他变量只包含不超过 5 或 6 个字符,none 其中 "http"。
以下两种方法中哪一种在速度和处理器负载方面提供最佳性能。
$str = 'http://somereallylongwebaddress.com';
if (substr( $str, 0, 4 ) === "http") {
// true
}
if (strlen( $str >= 7 )) {
// true
}
编辑
对于任何其他感兴趣的人,我发现了这个 great page,其中 运行 是各种不同功能的实时比较。它没有针对我的特定问题,但仍然非常有用。
您可以通过执行以下操作为 PHP 中的任何代码的性能计时:
$msc = microtime(true);
// YOUR CODE
$msc = microtime(true)-$msc;
echo $msc;
您可以 运行 在下面的任何在线 php 编辑器中使用不同的输入来跟踪代码并观察速度性能。
http://www.writephponline.com/
https://www.tutorialspoint.com/php_webview_online.php
<?php
$before = microtime(true);
$str = "http";
if (substr( $str, 0, 4 ) === "http") {
// true
}
echo "strlen performance ";
echo "Time: " . number_format(( microtime(true) - $before), 8) . " Seconds\n";
echo "\r\n";
$before = microtime(true);
if (strlen($str >= 4)) {
// true
}
echo "substr performance ";
echo "Time: " . number_format(( microtime(true) - $before), 8) . " Seconds\n";
echo "\r\n";
?>
根据以上代码片段的多个结果,substr 在速度方面表现出更好的性能。在处理器负载方面,每个函数的汇编代码都需要比较。
我需要 运行 检查多个变量,其中一些变量是 url,其他变量只包含不超过 5 或 6 个字符,none 其中 "http"。
以下两种方法中哪一种在速度和处理器负载方面提供最佳性能。
$str = 'http://somereallylongwebaddress.com';
if (substr( $str, 0, 4 ) === "http") {
// true
}
if (strlen( $str >= 7 )) {
// true
}
编辑 对于任何其他感兴趣的人,我发现了这个 great page,其中 运行 是各种不同功能的实时比较。它没有针对我的特定问题,但仍然非常有用。
您可以通过执行以下操作为 PHP 中的任何代码的性能计时:
$msc = microtime(true);
// YOUR CODE
$msc = microtime(true)-$msc;
echo $msc;
您可以 运行 在下面的任何在线 php 编辑器中使用不同的输入来跟踪代码并观察速度性能。
http://www.writephponline.com/
https://www.tutorialspoint.com/php_webview_online.php
<?php
$before = microtime(true);
$str = "http";
if (substr( $str, 0, 4 ) === "http") {
// true
}
echo "strlen performance ";
echo "Time: " . number_format(( microtime(true) - $before), 8) . " Seconds\n";
echo "\r\n";
$before = microtime(true);
if (strlen($str >= 4)) {
// true
}
echo "substr performance ";
echo "Time: " . number_format(( microtime(true) - $before), 8) . " Seconds\n";
echo "\r\n";
?>
根据以上代码片段的多个结果,substr 在速度方面表现出更好的性能。在处理器负载方面,每个函数的汇编代码都需要比较。