zoukankan      html  css  js  c++  java
  • 为什么 SQLite 用 C 编写?

    简评:SQLite 官方出品。

    C是最好的选择

    从 2000 年 5 月 29 日开始,SQLite 就选择了 C 语言。直到今天,C 也是实现 SQLite 这样软件库的最佳语言。

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

    1. 性能。
    2. 兼容性。
    3. 低依赖性。
    4. 稳定性。

    性能

    像 SQLite 这样被密集使用的基础库需要有很好的性能(SQLite 确实很快,可以看看 Internal Versus External BLOBs 和 35% Faster Than The Filesystem 两篇文章)。

    C语言很适合写这样有性能要求的程序。C 语言有时被称为「便携式汇编语言」,让开发者能尽可能的接近底层硬件编码,同时保证跨平台的便携性。

    当然,也有其他的编程语言声称和 C 一样快或者更快,但没有一个能和 C 一样通用。

    兼容性

    目前几乎所有的系统都可以调用由 C 语言编写的库。

    比如,用 Java 编写的 Android 应用能通过 adapter 来使用 SQLite。如果 SQLite 是用 Java 编写的,这对于 Android 肯定会更方便。但在 iPhone 上应用是 Objective-C 或者 Swift 编写的,这两种语言都没办法调用 Java 库。因此,如果 SQLite 选择用 Java 编写,那在 iPhone 上就没办法用了。

    低依赖性

    用 C 来编写库不会在运行时有太多的依赖。在最小的配置下,SQLite 只需要 C 标准库里的:

    1. memcmp()
    2. memcpy()
    3. memmove()
    4. memset()
    5. strcmp()
    6. strlen()
    7. strncmp()

    在更复杂的配置下,SQLite 可能还会用到 malloc(),free() 和一些操作系统接口来打开、读取、写入和关闭文件。但即使这样,依赖的数量也非常小。

    稳定性

    这个稳定性是指语言的稳定性。C 语言可能是老旧又无聊,但却正好很适合开发像 SQLite 这样更注重长期稳定的模块。

    原文:Why Is SQLite Coded In C

  • 相关阅读:
    [bzoj1039] [ZJOI2008]无序运动Movement
    [bzoj1037] [ZJOI2008]生日聚会Party
    [bzoj1034] [ZJOI2008]泡泡堂BNB
    wing IDE
    用css解决table文字溢出控制td显示字数
    表格Table宽度设置无效的解决方法
    mysql获取某个表的所有字段名
    Python 各种编码相互转化 (目前只有Unicode utf-8)
    Python dict转化为string方法
    前端传给后端的数据类型为ImmutableMultiDict 咋办
  • 原文地址:https://www.cnblogs.com/jpush88/p/8757707.html
Copyright © 2011-2022 走看看