簡體   English   中英

代碼中的字符串常量/文字會大大減慢編譯速度嗎?

[英]Do String constants/literals in code slow down compiling considerably?

字符串編譯時常量(內部化字符串)和文字可以用 == 進行比較,因為如果它們以某種方式相等,則它們在編譯時被分配相同的引用。

這是否意味着編譯由 n 個字符串文字組成的代碼需要 n log(n) 時間來編譯?

我在這里問這個問題是因為有人可能已經知道答案,但我不確定我是否可以編寫一個測試,以可靠、可重復或重要的方式衡量效果。 或者該測試將反映現實世界的約束等。

不過,我將發布我能想到的任何測試用例,請隨意提出一些建議,我會盡快找到時間實施它們。

代碼中的字符串常量/文字會大大減慢編譯速度嗎?

不。

字符串編譯時常量(內部化字符串)和文字可以用 == 進行比較,因為如果它們以某種方式相等,則它們在編譯時被分配相同的引用。

不,他們不是。 它們在編譯時被匯集到 .class 文件的常量區域中,並且在類加載時,當引用被分配時,它們被駐留

這是否意味着編譯由 n 個字符串文字組成的代碼需要 n log(n) 時間來編譯?

不。這里沒有固有的O(N log(N))過程。 在任何合理的實現中,通過哈希表進行池化是O(1) ,並且同上。

[這當然會是可以構造一個編譯器或intern()這是O(N日志(N)),O(N ^ 3)或更糟的方法,但它不是由你的問題的任何承擔的責任。]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM