编程 php strpos查找字符串性能对比

2024-11-19 08:15:16 +0800 CST views 2980

##strpos查找字符串性能对比
今天准备要做一个自动获取标签的功能,需要用到查找字符串的功能。于是对php的各个行数进行对比。使用tp5框架并且实际场景中测试
加载文件
strpos() 函数查找字符串在另一字符串中第一次出现的位置。
注释:strpos() 函数对大小写敏感。

	$haystack =[];
        for ($i=0; $i < 10000; $i++) { 
            $haystack[]=$i;
        }
        $tags=[];
        $str=strtolower($str);
        foreach($haystack  as $v){
            if(strstr($str,$v)){
                  $tags[]=$v;
            }
        }

10000次结果:运行时间 : 0.253014s [ 吞吐率:3.95req/s ] 内存消耗:2,133.81kb 文件加载:75
stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)。
注释:stripos() 函数是不区分大小写的。

代码同上 替换
stripos($str,$v)

10000次结果:运行时间 : 11.108635s [ 吞吐率:0.09req/s ] 内存消耗:2,157.81kb 文件加载:75

strrpos() 函数查找字符串在另一字符串中最后一次出现的位置。

注释:strrpos() 函数对大小写敏感。

代码同上 替换
strrpos($str,$v)

10000次结果:运行时间 : 0.336019s [ 吞吐率:2.98req/s ] 内存消耗:2,133.81kb 文件加载:75
strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)

代码同上 替换
strripos($str,$v)

10000次结果:运行时间 : 11.933682s [ 吞吐率:0.08req/s ] 内存消耗:2,157.81kb 文件加载:75
正则

preg_match("/{$v}/", $v)

10000次结果:运行时间 : 0.976056s [ 吞吐率:1.02req/s ] 内存消耗:2,249.89kb 文件加载:75
###最后决定用正则
最后代码如下:

preg_match("/{$v}/", $v)
复制全文 生成海报 PHP 性能优化 字符串处理 编程

推荐文章

HTML和CSS创建的弹性菜单
2024-11-19 10:09:04 +0800 CST
Elasticsearch 聚合和分析
2024-11-19 06:44:08 +0800 CST
避免 Go 语言中的接口污染
2024-11-19 05:20:53 +0800 CST
在 Nginx 中保存并记录 POST 数据
2024-11-19 06:54:06 +0800 CST
js函数常见的写法以及调用方法
2024-11-19 08:55:17 +0800 CST
jQuery中向DOM添加元素的多种方法
2024-11-18 23:19:46 +0800 CST
Hypothesis是一个强大的Python测试库
2024-11-19 04:31:30 +0800 CST
在Rust项目中使用SQLite数据库
2024-11-19 08:48:00 +0800 CST
浅谈CSRF攻击
2024-11-18 09:45:14 +0800 CST
15 个 JavaScript 性能优化技巧
2024-11-19 07:52:10 +0800 CST
向满屏的 Import 语句说再见!
2024-11-18 12:20:51 +0800 CST
在JavaScript中实现队列
2024-11-19 01:38:36 +0800 CST
JavaScript 流程控制
2024-11-19 05:14:38 +0800 CST
任务管理工具的HTML
2025-01-20 22:36:11 +0800 CST
Vue 3 中的 Watch 实现及最佳实践
2024-11-18 22:18:40 +0800 CST
小技巧vscode去除空格方法
2024-11-17 05:00:30 +0800 CST
一个有趣的进度条
2024-11-19 09:56:04 +0800 CST
Go语言中的`Ring`循环链表结构
2024-11-19 00:00:46 +0800 CST
程序员茄子在线接单