【发布时间】:2011-03-29 07:45:56
【问题描述】:
获取字符串的子字符串是一种非常常见的字符串操作操作,但我听说 Java 和 .NET 平台之间的性能/实现可能存在相当大的差异。具体来说,我听说在 Java 中,java.lang.String 为substring 提供常量 时间操作,但在.NET 中,System.String 提供线性 性能Substring。
真的是这样吗?这可以在文档/源代码等中确认吗?这个实现是特定的,还是由语言和/或平台指定的?每种方法的优缺点是什么?从一个平台迁移到另一个平台的人应该注意什么以避免陷入任何性能陷阱?
【问题讨论】:
-
为什么不运行您自己的微基准测试来测试呢?你能链接到说它性能“差”的来源吗?
-
@Oded:来源是 Danny Chen 的评论stackoverflow.com/questions/3474254/…;老实说,如果
Substring不是O(1)时间和空间操作(例如Java),我会感到惊讶,但由于我不了解.NET,所以我给了他怀疑的好处。 -
“表现不佳”是什么意思?相对于什么?例如,如果与 C++ 相比,.NET 的性能也很差。我们应该因此放弃 .NET 吗?
-
这是在引用文章吗?如果是这样,一个链接会非常非常有帮助......
-
糟糕 - 我没有看到你之前的评论。
标签: java .net performance string substring