Java 在互联网算法(搜索、大数据等)中的流行

标签 java c++ performance algorithm programming-languages

<分区>

多年来,我一直在编写 C/C++ 代码。最近也开始大量使用 Java,因为我用来解决计算问题的一些非常好的产品都是用 Java 编写的(例如:Lucene/Solr、Hadoop、Neo4j、OpenNLP 等)。

自从过去 3-4 年以来,我看到了这种变化,Java 至少在 Internet 算法(集群、搜索、大数据等)中确实非常流行。尽管它们是我上面提到的用 C++ 编写的产品的对应物(例如用 C++ 编写的 Search Sphinx 是一个不错的选择,Google 有用 C++ 编写的 Map Reduce 等)

我只是想知道是什么因素和力量让 Java 最近变得非常流行特别是在信息检索和大数据领域

我只是想知道 Java 的优势是什么让它在 Internet 算法领域非常流行?仅仅是因为平台独立性吗?

最佳答案

我认为,除了经常用来证明 X 比 Y 快的任意、人为的情况之外,Java 和 C++ 的性能水平相似。

一旦将网络往返时间和其他现实世界的延迟考虑在内,我就看不出 C++ 应用程序仅仅因为是 C++ 而不是 Java,就比 Java 应用程序提供了可衡量的优势。但是,您会发现编写良好的应用程序与编写糟糕的应用程序之间存在可衡量的差异。

关于Java 在互联网算法(搜索、大数据等)中的流行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9392409/

相关文章:

c++ - 封装与性能

c - 将 uint64_t 位转换为 double 并返回到宏中

java - 为什么 C 需要空零作为字符串终止符,而 Java 不需要?

c++ - 单声道播放单声道 wav 文件

java - 将由空格分隔的文件中的值放入多维数组

c++ - 在 if 条件下检测 "="而不是 "=="拼写错误

c++ - 将 C++ 编译成汇编代码

C - 'Greater than' 与 'Greater than or equal to' 性能

java - 无法从 String 转换为 float

java - 在java中尝试/捕获堆栈溢出?