有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何更快地运行java程序?

我想知道一个没有线程的简单程序是否能在一些有很多内核的计算机上运行得更快?还是在linux服务器集群上? 最近我运行了我的算法,它必须在我的PC上处理数十亿个IP数据包(core i7,16GB RAM),完成处理需要1881分钟。然后,我认为在linux服务器集群上运行该算法很好,每个节点有10个处理器和48GB RAM,以更快地获得结果。然而,这两个实验之间没有太大区别。 有人能评论一下我错过了什么吗


共 (2) 个答案

  1. # 1 楼答案

    如果你有一个单一的执行线程,那么更多的内核、CPU或机器就帮不上忙了。只有更快的CPU才能加快速度,而且只有在您的进程受CPU约束而非IO约束的情况下

    首先,你应该检查你的处理时间花在哪里,在CPU中,或者等待IO。如果你有大量的CPU使用率,你可以尝试并行化你的工作,也就是说,将数据分割成块,并有不同的线程响应。机器并行处理它们

  2. # 2 楼答案

    除非你的算法真的利用了这些多个实例和额外的内存,否则应该不会有太大的区别。并行编程本身就是一门艺术,一个“常规的”单线程程序本身并不会变成并行程序