| « | July 2026 | » | | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | |
| 公告 |
| 暂无公告... |
| Blog信息 |
|
blog名称: 日志总数:11 评论数量:53 留言数量:0 访问次数:153392 建立时间:2006年4月11日 |

| |
|
[编程语言]C++ 正则表达式测速 原创空间
wdx04 发表于 2006/7/15 21:17:55 |
|
正则表达式是十分强大的软件工具,我在日常工作中用得很多,但都是在Python中用,有时觉得Python内置的sre速度不够快,想看知道在C++中使用正则表达式是否效率更高,因此作了这个测试。
测试一:在一个1.15MB的Java源程序文件中统计形如"new MessageBox(...);"的代码片断出现次数(159次),重复执行100次,计算所用时间。测试使用的正则表达式: new MessageBox\([^;]*?\);测试二:文本同上,增加正则表达式的复杂度,重复20次。测试使用的正则表达式: /\\* ?!.*?\\*/|// ?![^\\n]*|new MessageBox\\([^;]*?\\);|[a-z]+!
测试结果如下:
编译器
正则表达式库
时间一
时间二
Visual C++ 6.0
Regex++ v3
2.64s
3.13s
Visual C++ 7.1
Regex++ v4
1.36s
2.54s
Intel C++ 8.1
Regex++ v4
0.51s
1.57s
Visual C++ 7.1
Xpressive Dynamic
0.30s
4.84s
Intel C++ 8.1
Xpressive Dynamic
0.18s
3.13s
Visual C++ 7.1
Xpressive Static
0.18s
1.98s
Intel C++ 8.1
Xpressive Static
0.14s
0.99s
Visual C++ 7.1
Greta 2.64
2.15s
2.69s
Intel C++ 8.1
Greta 2.64
1.85s
2.46
Visual C++ 6.0
PCRE 4.4
0.63s
2.94s
Visual C++ 6.0
TRE 0.74
6.97s
ERROR
Visual C++ 7.1
PCRE 6.4
0.66s
3.15s
Intel C++ 8.1
PCRE 6.4
0.53s
2.64s
Visual C++ 7.1
Oniguruma 2.56
0.39s
3.15s
Intel C++ 8.1
Oniguruma 2.56
0.30s
3.29s
Visual C# 7.1
.net Framework 1.1
0.52s
5.80s
Java 1.4.2
Standard Library
1.10s
8.83s
Java 1.4.2
JRegex 1.2
2.87s
5.22s
Python 2.4.2
Standard Library
0.59s
2.57s
下载源代码:500)this.width=500'>Regex_Test.rar |
|
|