[英]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.