[英]amalgamation sqlite
我最近在閱讀sqlite3的源代碼。 在合並版本中,只有四個文件。 在官方網站上 ,他們說:
“合並也使它運行得更快”
“當我們使用合並來編譯SQLite而不是單個源文件時,我們已經測量了5到10%的性能提升。”
我不明白他們是如何做到的以及為什么。 有沒有人有任何想法? 我們有可用的工具嗎?
如果解析所有.c文件,解壓縮所有#include
,然后構建一個首先列出所有包含的大文件,然后列出這些.c文件的所有其他內容,則可以得到類似的結果。
這樣,您就可以在單個轉換單元中使用所有代碼,從而允許編譯器一次查看所有代碼並執行更好的優化。 這與大多數C編譯器相關,但最新的編譯器具有所謂的鏈接時代碼生成功能 ,允許編譯器同時查看多個翻譯單元的代碼(在鏈接時)並生成更好的代碼,即使沒有合並技巧。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.