彩神vlll下载官方受 SQLite 多年青睐,C 语言到底好在哪儿?

  • 时间:
  • 浏览:5

S彩神vlll下载官方QLite 近日发表了一篇博文,解释了为哪些地方多年来 SQLite 一直坚持彩神vlll下载官方用 C 语言来实现,以下是正文内容:

C 语言是***选择

从2000年5月29日发布至今,SQLite 一直详细都会用 C 语言实现。C 一直是实现像 SQLite 类似软件库的***语言。目前,还那末任何计划要采用另外一门语言对 SQLite 进行重新开发。

为哪些地方 C 语言是实现 SQLite 的***选择?意味着着主要体现在这哪多少方面:

  • 性能

  • 兼容性

  • 低依赖性

  • 稳定性

1、性能

像 SQLite 类似库要求带彩神vlll下载官方宽须要要快。SQLite 的带宽就比较慢,它比文件系统快 35%(详情可不须要参考你你类似另另好多少 多示例:Internal Versus External BLOBs 和 35% Faster Than The Filesyste彩神vlll下载官方m)。

而 C 语言就能实现快速编写代码。C 语言通常被描述为“可移植性的汇编语言”。它使开发人员有利于尽为啥让靠近底层硬件进行编码,同去仍然可不须要跨平台保持可移植性。

平常,你可不须要们儿为啥让会看了大家描述你你类似语言“像 C 语言一样快”,却不要再看了大家说,作为通用目的编程时,会有一门语言“比 C 语言快”,为啥想要你类似语言真的不发生。

2、兼容性

几乎所有系统都能调用 C 语言编写的库,但你类似语言就不尽然。类似,用 Java 编写的 Android 应用有利于调用 SQLite(通过适配器)。 为啥让用 Java 编写 SQLite,那末对 Android 来说为啥让会更方便,为啥让这会使接口更简单。但在 苹果57机 上,程序池池是用 Objective-C 或 Swift 编写的,它们详细都会能调用用 Java 编写的库。 为啥让,为啥让用 Java 编写,SQLite 将无法在 苹果57机 上使用。

3、低依赖性

用 C 语言编写的库对运行时那末很强的依赖。SQLite 的***配置也如果我求 C 库中的哪些地方地方依据:

  • memcmp()

  • memcpy()

  • memmove()

  • memset()

  • strcmp()

  • strlen()

  • strncmp()

在更详细的构建中,SQLite 也使用诸如 malloc() 和 free() 类似的库例程以及用于打开,读取,写入和关闭文件的操作系统接口。 但即便那末,依赖的数量也很少。

4、稳定性

C 语言易于理解,契合了 SQLite 的要求,适合 SQLite 的开发。

为哪些地方 SQLite 不使用面向对象的语言?

开发人员为啥让无法想象用“非面向对象”来开发另另好多少 多像 SQLite 就是僵化 的系统会是哪些地方样子。就是 SQLite 为哪些地方不使用 C++ 为啥让 Java 来开发呢?

1、用 C++ 或 Java 编写的库通常必须由以相同语言编写的程序池池使用。 使用 Haskell 或 Java 编写的程序池池不难 调用用 C++ 编写的库。 被委托人面,用 C 语言编写的库可不须要从任何编程语言调用。

2、面向对象是设计模式,而详细都会编程语言。 你可不须要使用任何所需语言(包括汇编语言)进行面向对象编程。 你类似语言(类似:C++ 或 Java)可不须要使面向对象更容易,但你仍然可不须要用像 C 就是的语言进行面向对象的编程。

3、面向对象详细都会唯一有效的设计模式。对象通常是分解现象的好依据。 但详细都会唯一的依据,就是一直分解现象的***依据。 有时好的旧程序池池代码更容易编写,更易于维护和理解,为啥让比面向对象的代码比较慢。

4、SQLite 进行开发时,Java 还详细都会一门开花结果 图片 的句子 的语言,C++ 会开花结果 图片 的句子 你类似,但当须要找到你你类似能以 相同依据彩神vlll下载官方工作的 C++ 编译器比较困难。相比之下,C 语言是个不错的选择。不言而喻,你你类似情况汇报现在有所改善,但为此对 SQLite 重新开发并没哪些地方地方好处。

为哪些地方 SQLite 不使用"安全"语言编写?

使用“安全”语言不易发生内存泄露、数组溢出等的安全现象。最近,你可不须要们好像对 Rust 和 Go 就是的“安全”语言感兴趣。但 SQLite 为哪些地方不使用呢?

1、SQLite 出现 后的 10 年时间里,所谓的“安全”语言还不发生。不言而喻 SQLite 可不须要用 Rust 为啥让 Go 重新编写,但就是为啥让会引入更多难以修复的 Bug,进而会影响编码带宽。

2、“安全”编程语言避免简单的现象:像内存泄露、数组溢出等。在避免 SQL 计算结果类似的现象上,不须如 C 语言好用。

3、“安全”语言可避免安全漏洞,但 SQLite 不须另另好多少 多对安全敏感的库。为啥让应用运行了不受信任的 SQL,那它为啥让为啥让发生更大的安全现象,而这是“安全”语言无法修复的现象。

4、你类似“安全”语言(如 Go 语言)不喜欢使用 assert(),但这是保持 SQLite 可维护性的重要前提。

5、“安全”语言会插入额外的机器分支来执行你类似操作。但在正确的代码中,哪些地方地方分支不须会被采用。就是机器代码必须 200% 被测试到,可这恰恰是 SQLite 质量检测的重要组成次责。

6、“安全”语言会在内存匮乏(OOM)时请求终止,而 SQLite 的设计是遇到 OOM 时能重新恢复。目前,还问你咋样利用“安全”语言实现你你类似点。

7、现有的“安全”语言都比较新,SQLite 开发员对它们的出现 表示赞赏,但依然认为 C 语言更适合目前的开发工作。

文章***表示,SQLite 为啥让会考虑使用 Rust 重新开发,但不太为啥让使用 Go 语言,为啥让它对 assert() 不友好。但不言而喻 Rust 目前的条件并匮乏以对 SQLite 进行重新开发,它还须要继续发展。

【编辑推荐】

【责任编辑:

张燕妮

TEL:(010)684762006】



点赞 0