最终的最终结果:
我想知道如果字符串更长,下面的结果是否会改变.我在同一台计算机上运行完全相同的测试,除了每个单元格有一个34个字符而不是4个字符的随机字符串.这些是结果:
Comintern (Regexp): 136.1 ms
brettdj (Regexp): 139.9 ms
Slai (Regexp): 158.4 ms
*Original Regex: 161.0 ms*
Comintern (AN): 170.1 ms
Comintern (Hash): 183.6 ms
ThunderFrame: 232.9 ms
*Original replace: 372.9 ms*
*Original InStr: 478.1 ms*
CallumDA33: 1218.1 ms
Run Code Online (Sandbox Code Playgroud)
这真的显示了Regex的速度 - 所有使用Regex.replace的解决方案都明显更快,最好的是Comintern的实现.
总之,如果字符串很长,请使用数组,如果它们很短,请使用剪贴板.如果不确定,最佳结果是使用数组,但这可能会牺牲短字符串的一点性能.
最终结果:
非常感谢您提出的所有建议,显然我还有很多需要学习的地方.昨天我一直在想这个,所以我决定在家里重新运行一切.以下是最终结果,基于将这些中的每一个应用于30,000个四个字符串.
我家里的电脑是英特尔i7 @ 3.6 GHz,8GB内存,64位Windows 10和Excel 2016.与之前相似的条件我在后台运行进程,但我并没有在整个测试中积极做任何事情.
Original replace: 97.67 ms
Original InStr: 106.54 ms
Original Regex: 113.46 ms
ThunderFrame: 82.21 ms
Comintern (AN): 96.98 ms
Comintern (OR): 81.87 ms
Comintern (Hash): 101.18 ms
brettdj: …Run Code Online (Sandbox Code Playgroud)