适合替代java开发跨平台应用程序

时间:2011-12-17 15:57:56

标签: java performance qt cross-platform

我一直用java来开发跨平台应用程序,但是,这次java无法解决我的问题。问题是,我必须开发一个计算成本高昂的应用程序。更准确地说,在我的应用程序中,有一个模拟有点太重。我做了一个java原型应用程序,但它不够快,我的模拟有一些滞后,所以我开始考虑切换到c ++。 我的应用程序有一个GUI,我想知道是否要切换到跨平台应用程序的c ++,我应该怎么做GUI? 我的问题是:

  1. 如果我使用Qt框架,我的应用程序是否会显着更快?
  2. 如果我将我的jar文件部署到本机操作系统可执行文件(.exe,.app等),我的应用程序将显着更快?
  3. P.S。 Mac OSx,Windows和Ubuntu是我软件的目标平台。

2 个答案:

答案 0 :(得分:4)

这篇文章可以帮到你,我几年前面对同样的问题。我决定坚持使用Java来完成我自己的编程经验,因为我在C ++方面并不擅长,而且我的项目是诚实的,非常简单。如您所知,Java在全球范围内非常普及,有大量的文档和库可供您使用,Qt更快,但您需要亲自动手才能完成这项工作。如果表现是你的目标,Go Qt。或者将您的应用程序重新设计为hava Java / Swing GUI和C ++程序服务器端。无论如何这里是链接。

http://turing.iimas.unam.mx/~elena/PDI-Lic/qt-vs-java-whitepaper.pdf

Java / Swing可能适用于某些项目,尤其是那些没有GUI的项目 或者具有有限的GUI功能。 C ++ / Qt是一个整体卓越的解决方案,特别是对于GUI应用程序。

答案 1 :(得分:2)

使用C ++而不是Java可以提高CPU性能,有时甚至高达10-30%。但是,使用多个线程也会增加可用的CPU数量。鉴于使用多线程没有帮助,我怀疑你的瓶颈不在CPU和切换语言不太可能有帮助。

C可以帮助编程图形卡,例如CUDA。使用高性能处理卡可以显着提高某些类型问题的结果。 http://www.nvidia.co.uk/object/cuda_home_new_uk.html有一些JOCL库可以使用Java中的CUDA,但实际工作的代码是用C语言编写的。

我建议您确定瓶颈的确切位置,因为切换到C ++不会增加缓存的大小,内存带宽,IO带宽或主内存的大小。