在线文档教程
Sqlite
其他 | Miscellaneous

Why Is SQLite Coded In C

为什么在C中编译SQLite?

1. C语言是最好的

1.1.性能

1.2.兼容性

1.3.低相关性

1.4.稳定性

1. C语言是最好的

自从2000-05-29开始以来,SQLite已经在通用C语言中实现.C语言一直是并且将继续是实现像SQLite这样的软件库的最佳语言。目前还没有计划在任何其他编程语言中重新编码SQLite。

C语言是实现SQLite最好的语言的原因包括:

  • 性能

  • 兼容性

  • 低相关性

  • 稳定性

1.1. 性能

像SQLite这样的密集使用的低级库需要很快。(SQLite速度很快,例如,请参阅内部与外部BLOB相比,文件系统速度快35%。)

C语言是编写快速代码的绝佳语言。C有时被描述为“便携式汇编语言”。它使开发人员能够尽可能接近底层硬件编码,同时仍然保持跨平台的便携性。

其他编程语言有时声称“与C语言一样快”。但是没有其他语言声称比通用编程的C语言更快,因为没有其他语言。

1.2. 兼容性

几乎所有的系统都可以使用C语言编写的库进行调用。其他实现语言并不适用。

因此,例如,用Java编写的Android应用程序能够通过适配器调用SQLite。如果SQLite已经用Java编码,那么对于Android来说可能会更方便,因为这会使界面更简单。但是,在iPhone上,应用程序使用Objective-C或Swift编码,这两者都不能调用用Java编写的库。因此,SQLite在使用Java编写的iPhone上无法使用。

1.3. 低相关性

用C语言编写的库不具有巨大的运行时间依赖性。在其最小配置中,SQLite仅需要标准C库中的以下例程:

memcmp() memcpy() memmove() memset()strcmp() strlen() strncmp()

  • memcmp()

  • memcpy()

  • memmove()

  • memset()

  • strcmp()

  • strlen()

  • strncmp()

在更完整的构建中,SQLite还使用malloc()和free()和操作系统接口等库例程来打开,读取,写入和关闭文件。但即使如此,依赖关系的数量也非常小。相比之下,其他“现代”语言通常需要装载数千和数千接口的数兆字节运行时。

1.4. 稳定性

C语言老旧无聊。这是一个众所周知的,很好理解的语言。这正是开发像SQLite这样的模块时所需要的。编写一个小巧,快速和可靠的数据库引擎是很困难的,因为每次更新实现语言规范时都没有实现语言的变化。

SQLite is in the Public Domain.