You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改已读取文件内容的最后字符:strlen与filesize哪个更快?

字符串末尾字符修改:strlen 与 filesize 的性能对比

假设已通过file_get_contents('file.ext')读取文件内容并存储到变量$a中,需求是修改该字符串的最后一个字符。请问以下两种写法哪种执行速度更快?

第一种写法:

$a[strlen($a) - 1] = 'b';

第二种写法:

$a[filesize('file.ext') - 1] = 'b';

我原本猜测filesize的返回值可能会被文件系统缓存,或者文件在内存中的首尾地址已知,只需计算差值就能快速得到长度,理论上性能会更优。

为此我做了基准测试,每组结果中第一个数值是使用strlen的耗时(单位:秒),第二个是使用filesize的耗时:

9 - 6
2.5 - 5

2 - 5
2.8 - 5

2.4 - 5
4.19 - 5

1 - 5
2.9 - 5

9 - 6
2.69 - 5

9 - 6
2.9 - 6

测试结果显示strlen的执行速度明显更快。不过正如@nice_dev指出的,file_get_contents本身会调用filesize来确定要读取的字节数,或许搭配fopen来使用filesize才是更公平的性能对比场景。

内容的提问来源于stack exchange,提问作者Stdugnd4ikbd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:09:55