gpt4 book ai didi

php - PHP中strlen()的效率如何?

转载 作者:可可西里 更新时间:2023-11-01 14:03:48 27 4
gpt4 key购买 nike

使用 strlen 是通过遍历字符串实际计算字符串中的字节数,还是简单地从索引返回已计算的字符串长度值?

我的问题的原因是因为我可以选择为速度敏感的脚本存储非常长的字符串的预计算值,或者我可以只使用 strlen 函数并保存自己的代码时间。

但我其实很想知道 strlen 是如何工作的,因为我倾向于非常依赖它,也许这不是一个好主意?

更新

请参阅下面的基准测试。

最佳答案

去他的,我做了一个基准测试:

<?php
$shortstring='hello';

$longstring='long';
for($run=0;$run<100000;$run++)
$longstring.='dsffghdgfhdsda'.rand(1000,2000);

$time=microtime(true);
for($run=0;$run<100000000;$run++)
$temp=strlen($shortstring);
$time=microtime(true)-$time;

echo "strlen on short string took $time seconds\n";

$time=microtime(true);
for($run=0;$run<100000000;$run++)
$temp2=strlen($longstring);
$time=microtime(true)-$time;

echo "strlen on long string took $time seconds\n";

结果

strlen on short string took 12.508891820908 seconds
strlen on long string took 11.897696971893 seconds

它显然不会遍历字符串,而是返回一个预先索引的值。速度没有差异。

关于php - PHP中strlen()的效率如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15171715/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com