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