簡體   English   中英

為什么SQLite提供其代碼的合並?

[英]Why does SQLite provide amalgamations of their code?

每次我下載SQLite時,我都會遇到這樣一個事實,即他們提供了幾個不同版本的源代碼,這是我從未見過任何其他項目所做的事情。 而且更多的是它們提供了源的合並,將所有文件合並為3個文件。 這是什么原因? 這只是編譯速度嗎? 還是有一些非常好的理由呢? 其他項目是否使用源代碼合並?

正如其關於合並頁面上直接說明的那樣

除了使SQLite更容易合並到其他項目之外,合並還使其運行得更快。 許多編譯器能夠在代碼包含在單個轉換單元中時對代碼進行額外的優化,例如它在合並中。 當我們使用合並來編譯SQLite而不是單個源文件時,我們已經測量了5到10%的性能改進。 這樣做的缺點是額外的優化通常采用函數內聯的形式,這往往會使得到的二進制圖像的大小變大。

我自己也看到了將其納入其他項目的最大好處。 它簡單地使編譯更容易。 沒有構建腳本混亂以及擁有大量源文件后的其他內容。

這樣做是為了簡化現有項目。 在項目中添加一個.h和一個.c,您就擁有了完整的SQLite引擎。

我很感激。 這是我要擔心的一件事。

當我使用dev c ++編譯器將windows下的合並文件轉換為單獨的文件時,我遇到了很多問題。 因為我想讓sqlite在名為DJYOS的RTOS中工作,所以從單個文件更改代碼比從合並文件更改代碼更容易。

暫無
暫無

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

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