对字符串进行子串处理是一种非常常见的字符串处理操作,但是我听说Java和.NET平台之间在性能/实现方面可能会有相当大的差异。具体我听说在Java中,java.lang.String
报价常数时间操作为substring
,但在.NET中,System.String
报价线性性能Substring
。.NET和Java之间的子串操作性能比较
这些是真的吗?这可以在文档/源代码等确认吗?该实现是特定的还是由语言和/或平台指定的?每种方法的优缺点是什么?一个人从一个平台迁移到另一个平台应该怎样才能避免陷入任何性能缺陷?
为什么不运行你自己的微型基准测试来测试这个?你能链接到说它有“糟糕”表现的来源吗? – Oded 2010-08-13 06:57:39
@Oded:来源是丹尼陈的评论在这里http://stackoverflow.com/questions/3474254/how-to-make-a-first-letter-capital-in-c/3474263#3474263;老实说,如果'Substring'不是'O(1)'时空操作(比如Java),但是我会给他带来疑问的好处,因为我不知道.NET。 – polygenelubricants 2010-08-13 06:59:09
这是什么意思“不良行为”?相对于什么?例如,与C++相比,.NET也有不好的表现。因此,我们应该放弃.NET吗? – 2010-08-13 07:07:35