我當前使用軟標籤(即空格)來縮進我的Ruby代碼,如果我使用硬標籤,它會在代碼解釋時提高性能嗎?我認爲讀取一個製表符比解析4個空格字符更快(但可以忽略)。使用空格替代製表符縮進的性能影響
9
A
回答
11
您是否瞭解從源代碼解釋中涉及的所有階段?只有第一個詞彙分析必須處理空白,而在空白的情況下,「處理」意味着「忽略它」。這個階段只佔總時間的很小一部分,通常使用正則表達式完成,並且幾乎具有線性複雜度。與分析相比,這可能需要長時間的比較。而解釋只是有點可行,因爲這兩個階段(加上第三個字節碼生成,在使用字節碼的實現中)比非平凡程序的實際執行要少得多。
不要擔心這一點。任何人都不會注意到任何差異。老實說,如果你能用time
和一個接近沒有實際工作的小程序來衡量差異,我會感到驚訝。
8
性能影響是ε,即大於零的非常小的數字。空間只能被讀取和解析一次,然後Ruby代碼被轉換成中間形式。
9
可以肯定的是,解析器在讀取一個字節的標籤縮進與四個字節的空間之間可能會產生的影響將由下一個必須讀取代碼並修復您的選項卡/間隔混亂的人來抵消。
請使用空格。簽名,下一個人讀你的代碼。
+0
阿門,兄弟![](http://stackoverflow.com/questions/646032) – 2011-06-11 05:23:26
相關問題
- 1. 在空格縮進項目中使用製表符縮進
- 2. Rails製表符代替空格
- 3. 使用製表符而不是XML中的空格縮進
- 4. 行間空格是否影響javascript代碼的性能
- 5. 如何使用製表符替代emacs ruby-mode的空格?
- 6. 使用製表符縮進(不是空格)轉儲JSON
- 7. URI中是否有空格字符會影響性能?
- 8. 如何指示emacs使用4個空格代替所有縮進的製表符?
- 9. Vim的縮進JavaScript文件用空格代替標籤
- 10. 如何使HtmlTextWriter對象的縮進使用空格而不是製表符?
- 11. 使用空格縮進heredocs
- 12. Vim:使用製表符縮進,使用C源文件對齊空格
- 13. 在PHP_CodeSniffer中強制使用空格縮進而不是製表符?
- 14. 性能影響
- 15. 性能的影響
- 16. 錯誤:使用縮進中的製表符和空格不一致
- 17. 「縮進中製表符和空格的使用不一致」是什麼意思?
- 18. 使用setStatsSampleRate/topology.stats.sample.rate的性能影響
- 19. 使用Oracle DBMS_WM.EnableVersioning時的性能影響
- 20. 禁用製表符作爲縮進符中的縮進字符
- 21. 複製php變量的性能影響
- 22. html縮進標準,製表符還是兩個空格?
- 23. Scripting.Dictionary性能受多個進程影響
- 24. 使用Spring進行日誌記錄對性能的影響AspectJ
- 25. 我怎麼能代替所有重複的空格與製表符
- 26. LINQ性能影響
- 27. 用vb.net中的空格替換多個製表符空間
- 28. URL格式會影響性能/緩存?
- 29. 大型變量表的性能影響
- 30. 使用jaxb XMLAdapter會影響性能嗎?
空格讀取一次,根本不解析。 – EJP 2013-05-17 00:24:55
廢話。 lexing階段是解析的一部分。 – 2013-05-18 05:29:20
廢話。空間被篩選;結果被掃描;並解析結果。 – EJP 2014-05-04 22:36:11