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

适合替代java开发跨平台应用程序,java,performance,qt,cross-platform,Java,Performance,Qt,Cross Platform,我一直使用java开发跨平台的应用程序,但是这次java不能解决我的问题。问题是,我必须开发一个计算成本很高的应用程序。更准确地说,在我的应用程序中有一个模拟,它有点太重了。我制作了一个java原型应用程序,但是它不够快,而且我的模拟有一些滞后,所以我开始考虑切换到C++。 我的应用程序有一个GUI,我想知道如果我想切换到C++跨平台应用程序,我应该怎么处理GUI? 我的问题是: 如果我使用Qt框架,我的应用程序会显著更快吗 如果我将jar文件部署到本机os可执行文件(.exe、.app等)中,

我一直使用java开发跨平台的应用程序,但是这次java不能解决我的问题。问题是,我必须开发一个计算成本很高的应用程序。更准确地说,在我的应用程序中有一个模拟,它有点太重了。我制作了一个java原型应用程序,但是它不够快,而且我的模拟有一些滞后,所以我开始考虑切换到C++。 我的应用程序有一个GUI,我想知道如果我想切换到C++跨平台应用程序,我应该怎么处理GUI? 我的问题是:

  • 如果我使用Qt框架,我的应用程序会显著更快吗
  • 如果我将jar文件部署到本机os可执行文件(.exe、.app等)中,我的应用程序是否会显著更快

  • p、 Mac OSx、Windows和Ubuntu是我的软件的目标平台

    这篇文章可能对你有所帮助,几年前我也面临同样的问题。我决定坚持用java来编程,因为我在C++中不是很好,我的项目是诚实的,非常简单。正如您所知,Java在世界范围内非常广泛,有大量的文档和库可供您使用,Qt速度更快,但您需要动手来完成这项工作。如果性能是你的目标,那就去Qt。或者重新设计应用程序,以HAVA java/Swing GUI和C++程序服务器端。无论如何,这是链接

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

    > P>使用C++代替java提高CPU性能,有时高达10-30%。但是,使用多线程也会增加可用的CPU数量。考虑到使用多线程并没有帮助,我怀疑您的瓶颈不在CPU上,切换语言也不太可能有帮助

    C可以帮助编程图形卡,例如CUDA。对于某些类型的问题,使用高性能处理卡可以获得更快的结果。有一些JOCL库可以使用Java中的CUDA,但真正起作用的代码是用类似C的语言编写的


    我建议你确定你的瓶颈在哪里,因为切换到C++不会增加缓存的大小、内存带宽、IO带宽或主内存的大小。

    你分析了java版本中性能慢的地方,并试图改进它吗?是的。我将代码清理/改进到了可能的最高级别。还是慢。线程也不能解决这个问题。正如JonSkeet所说,一旦你发现java版本中的问题并改进它,你就可以在C++中写“慢”部分,然后通过JNI调用你正在做的计算。根据您所做的,限制可能在于您所使用的硬件的选择。嗯,在C++中,很少有问题比java快得多,你可能看到10-30%的改进,但是你也可以通过使用更快的硬件来获得这种改进。@ Pouy:我不是在说“清理和改进”——我在谈论分析和分析你的代码,找出瓶颈所在。QT的1!如果你不想做java,那么C++中的便携式GUI应用程序肯定是走的。