對字符串進行子串處理是一種非常常見的字符串處理操作,但是我聽說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