Почему SQLite обеспечивает объединение своего кода? - PullRequest
5 голосов
/ 18 февраля 2009

Каждый раз, когда я скачиваю SQLite, я сталкиваюсь с тем, что они предоставляют несколько разных версий своего исходного кода, чего я никогда не видел ни в одном другом проекте. Более того, они предоставляют Amalgamations of Source, которые объединяют все свои файлы всего в 3 файла. В чем причина этого? Это просто скорость компиляции? Или есть действительно веские причины для этого? Используют ли другие проекты Объединение исходного кода?

Ответы [ 3 ]

10 голосов
/ 18 февраля 2009

Как указано непосредственно на их странице об объединении

Помимо упрощения включения SQLite в другие проекты, объединение также ускоряет его работу. Многие компиляторы могут выполнять дополнительную оптимизацию кода, когда он содержится в одной единице перевода, такой как в объединении. Мы измерили улучшения производительности от 5 до 10%, когда мы используем объединение для компиляции SQLite, а не отдельных исходных файлов. Недостатком этого является то, что дополнительная оптимизация часто принимает форму встраивания функций, что приводит к увеличению размера получаемого двоичного изображения.

Я сам вижу, что включение в другие проекты - величайшая выгода. Это просто значительно упрощает компиляцию. Никакой путаницы в скрипте сборки и всего остального следует из большой коллекции исходных файлов.

4 голосов
/ 18 февраля 2009

Это сделано для упрощения включения в существующие проекты. Добавьте один .h и один .c к своему проекту, и у вас будет полный движок SQLite.

Я ценю это. Это еще одна вещь, о которой я должен беспокоиться.

0 голосов
/ 28 марта 2013

Когда я делю файл объединения на отдельные файлы под Windows с помощью компилятора dev c ++, у меня возникает много вопросов. Потому что я хочу, чтобы sqlite работал в ОСРВ, которая с именем DJYOS проще изменить код из отдельных файлов, чем из объединенного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...