关于问题 卡桑德拉

到底为什么有人会用 Java 编写数据库引擎?
我可以理解为什么你想要一个 Java 接口,但是引擎......

我的印象是没有什么比 C/C++ 更快,数据库引擎不应该比最大速度慢,当然也不应该使用垃圾收集......

谁能解释一下为什么 Cassandra 比在 C/C++ 代码上运行的普通 SQL 更快?

编辑:
很抱歉“为什么是人间地狱”部分,但这对我来说真的没有任何意义。
我忽略了数据库与一般的普通用户程序不同,它只需要启动一次,然后运行很长一段时间,并且可能也是服务器上唯一的程序,这不言而喻重要的性能差异。

我更多的是比较/参考我在撰写本文时使用的(或者更确切地说是愿意使用的)“功能失调”(温和地说)Java 税务程序。

事实上,与使用 Java 编写税务程序不同,使用 Java 编写专用服务器程序是非常有意义的。

有帮助吗?

解决方案

我可以看到几个原因:

  • 安全:用 Java 编写安全软件比用 C++ 更容易(还记得缓冲区溢出吗?)
  • 表现:情况并没有那么糟糕。启动时肯定会更糟,但是一旦代码启动并运行,这就不是什么大事了。其实,这里你必须记住一个重要的点:Java 代码由 VM 不断优化,因此在某些情况下,它比 C++ 更快

其他提示

你是什么意思,C ++?如果你有一个几十年来备用手工编码的组件会更快。

  

为什么地球上的地狱会有人用Java编写数据库引擎?

平台独立性是服务器的一个相当大的因素,因为你有更多的硬件和操作系统的异质性比台式电脑。另外一个是安全性。不具有至约缓冲器溢出担心装置最坏的一种安全的最孔是根本不可能的。

  

我的印象是,下   没有什么比C / C ++更快,   一个数据库引擎不应该   任何超过最大速度慢,   肯定不会使用垃圾   集...

您的印象是不正确。 C / C ++不一定比Java快,与现代垃圾收集器有一个重要组成部分,因为它们使创建对象是难以置信的快。

不要忘记,上即时进行的优化的Java虚拟机。利用一个刚刚在时间(JIT)引擎让Java媲美C ++在速度方面。与JIT优化能力铭记,Java是一个相当富有成效的语言(尽管它的反对者)和便携式一起,意味着Java不是这样的不合理的选择。

现代的Java性能损失运行时将本来就不大和Java编程中比在C容易出错少。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top