• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

字号: | 推荐给好友 上一篇 | 下一篇

Rope:理论与实践

发布: 2008-6-26 11:21 | 作者: 不详 | 来源: 领测软件测试网编辑整理 | 查看: 20次 | 进入领测软件测试网论坛讨论

领测软件测试网

1L1M/l(kU@0W0pt

r B%d*A+\%D9Sv H正则表达式的性能优化软件测试技术网7@3Txtc `/p:[

软件测试技术网9I0`pt5|:E3H

正则表达式在 JDK 1.4 版本中引入,是许多应用程序中广泛使用的一个功能。所以,正则表达式在 rope 中执行良好至关重要。在 Java 语言中,正则表达式用 Pattern 表示。要将 Pattern 与 CharSequence 的区域匹配,要使用模式实例构建 Matcher 对象,将 CharSequence 作为参数传递给 Matcher。软件测试技术网.c;Z8sFI

软件测试技术网w,QW_ L1INJ

操纵 CharSequence 可为 Java 的正则表达式库提供极佳的灵活性,但也带来了一个严重的缺陷。CharSequence 只提供了一个方法来访问它的字符:charAt(x)。就像我在概述一节中提到过的,在拥有许多内部节点的 rope 上随机访问字符的时间大约为 O(log n),所以遍历时间为 O(n log n)。为了演示这个缺陷带来的问题,我测评了在长度为 10,690,488 的字符串中寻找模式 “Crachit*” 的所有实例所花费的时间。所用的 rope 是使用插入测评的同一个变换序列构建的,深度为 65。表 6 显示了测评的结果。

1qf7~ d Cl+iU2f:D