【问题标题】:why many nosql stores are written in java? [closed]为什么很多 nosql 存储都是用 java 编写的? [关闭]
【发布时间】:2012-02-11 11:08:06
【问题描述】:

据我所知,很多 nosql 存储都是用 java 编写的,例如 HBase、Cassandra。但是根据我的经验,很多高性能的服务器程序都是用 c/c++ 编写的(例如 Apache、Opensips 等),为什么这样的 java 实现程序在生产使用中表现良好?是因为 Java 代码易于阅读吗?用java实现的维护和分布式系统是否可以很好地扩展?

顺便说一句,我知道用Java写代码肯定更有效率,但正如有人说的那样,在大公司中实现速度不是问题,因为一旦实现并重构了几轮,程序就可以运行得很好,所以从长远来看,时间成本并不高。

【问题讨论】:

  • "...实施速度在大公司不是问题..." 哇,在过去十年左右的时间里,我一定在另一个世界工作过。所以我想这是 YMMV 的事情 ;-)
  • -1 我不相信像这样一个广泛的问题的答案,即使仅限于 NoSql 的上下文,也适合这个网站

标签: java c++ c nosql cassandra


【解决方案1】:

如果您点击右侧“相关”部分的第一个链接 (Why was Cassandra written in Java),您会找到答案。

简短的总结:

  • 独立于平台。
  • Java 代码不一定比 C/C++ 慢很多,有时甚至更快(见下文)
  • Java 从一开始就内置了线程支持 - 适用于任何平台
  • 安全/安全(无缓冲区溢出、核心转储......)

编辑 “根据定义,C/C++ 比 Java 更快”的神话只是 - 一个神话。查看this question 的反例。

【讨论】:

  • +1 一个糟糕问题的好答案。
  • 事实上我读过这篇文章(为什么 Cassandra 是用 Java 编写的),但是根据我的经验,一些低级网络程序(例如 linux 系统中的许多网络实用程序)是用 C 编写的,做它们仅出于历史原因和兼容性原因而不是性能原因而存在? BTW,C++/Java exec速度对比的参考文章很有用!
  • C/C++ 有它的优势,并且在低级系统(如操作系统级)编程中,我也不想使用其他任何东西,这是有充分理由的。这在我的有生之年也不会改变。但是应用程序代码最好用边缘不那么锋利的语言编写。在这两个极端之间有一个巨大的灰色地带,两种语言风格都在争夺主导地位。提示:THAT 数据库系统(e.a.)现在是用 Java 编写的并且成功是一个强烈的迹象,表明该语言本身和完整的运行时基础架构非常 成熟。
  • +1 - 写得真好。如果还有更多类似的,我会在这里期待您的回答。
  • 您给出的“C/C++ 根据定义比 Java 更快”的示例是一个谬误,结果证明英特尔 C++ 编译器的优化非常糟糕。结论是:Java 7 秒,MSVC 12 毫秒……
猜你喜欢
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多