String.replace是否比ActionScript 3中的String.split ... String.join更快?

时间:2009-10-29 09:48:48

标签: regex flex flash actionscript-3 string

使用它是否更快

myString.replace(/foo/g,"bar")

而不是

myString.split("foo").join("bar")

对于ActionScript 3中的长字符串?或者他们只是两种可比较的方法来实现相同的结果?

3 个答案:

答案 0 :(得分:10)

我使用gSkinners PerformaceTest对此进行快速测试。我认为差异最小。我会说replace()将是首选,因为这是你想要实现的目标。使用split().join()的意图并不明确。

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Using replace() (10000 iterations)
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
method...................................................ttl ms...avg ms
[function]                                                   57     0.01
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Using split().join() (10000 iterations)
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
method...................................................ttl ms...avg ms
[function]                                                   61     0.01
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

答案 1 :(得分:5)

David R.引用博客Dirkgently链接:

  

string.split()。join()构造是   来自AS2天的剩余物,那里   没有string.replace()。在AS3中,它   使用.split.join是没有意义的,   只有没有学过的人   可能会有新的替换功能   使用它。

此外,根据该博客,时差似乎很小。所以,是的,替换应该是一种更清洁的方式。

答案 2 :(得分:2)

Here's一篇不错的博客文章。但你真的应该衡量哪个更快。