我正在尝试创建一个从不同web服务获取数据的消费者应用程序。应用程序必须处理实时的大容量数据。我只能根据性能在Java和C++之间做出选择。敬请指教。
谢谢。
发布于 2010-12-13 00:45:44
网站的性能差异并不像你拥有的技能集那么重要。用一种语言编写的好的应用程序比用另一种语言编写得不好的应用程序要快。
你真的需要知道你在C++中做了什么才能写出一个写得很好的应用程序,在Java语言中写一个写得很好的程序会更容易,因为它不需要同样的技能水平。
我同意@Jason的观点,你不应该认为这是一个或另一个解决方案。在经典应用程序中,90%的时间花费在10%的代码上。即使你发现C++要快得多,你也只需要用10%的代码就可以了。
然而,我怀疑您最好花时间查看硬件和网络基础设施,因为它们可以产生更大的差异,并且太容易被开发人员忽视。
发布于 2010-12-13 01:06:56
如果您的场景由于网络带宽而遇到瓶颈,那么您使用哪种语言可能并不重要,只要它能有效地处理I/O即可。Java和C++都能很好地做到这一点。
如果您的场景由于计算带宽而出现瓶颈,则C++可能更有效。近年来,通过JIT编译和其他技术,Java变得相当高效。
如果我自己做这件事,我更喜欢Java而不是C++,因为它是一种更高级的语言,具有更好的工具,通过内存管理出现错误的机会更少。我将用Java制作系统的计算部分的原型,看看它的性能如何。如果足够的话,我会留在爪哇。否则,我会将其与C++进行比较,如果有性能优势,可能会使用JNI或JNA在C++中执行高性能计算。
发布于 2010-12-13 00:54:37
通常可以用C++编写比用Java语言编写的等效软件更有效地处理数据的软件。这种差异通常是微不足道的。
由于C++很复杂,所以新手程序员编写的C++性能非常差是很常见的。Java更简单,所以在Java中很难犯这么大的错误。
https://stackoverflow.com/questions/4422671
复制相似问题