我写了一个Java代码,它的运行时间很糟糕。我知道也许我的代码效率不高,我也不专注于提高效率。目前,唯一重要的事情是更快地运行我的代码。我可以访问具有超过20个节点的集群。以下是我的那部分代码的架构,该架构需要太多时间才能运行。第一个for循环迭代是完全相互独立的。

    for (int i = 0; i < 1000000; i++) {
        for (int j = 0; j < 10000; j++) {
            HashSet temp1 = new HashSet();
            for (int k = 0; k < 10; k++) {
                HashSet temp2 = new HashSet();
                boolean isSubset = temp1.containsAll(temp2);
                if (isSubset == true) {
                    BufferedReader input = new BufferedReader(new FileReader("input.txt"));
                    HashSet temp3 = new HashSet();
                    for (int l = 0; l < 10000; l++) {
                        boolean isSubset1 = temp1.containsAll(temp3);
                    }
                }
            }
        }
    }

根据我对分布式计算的基本知识,我可以在多个服务器上运行它以更快地获得结果,而且我认为MapReduce是另一个想法。我没有并行处理的经验。我需要一些想法和指导,如何使其并行化?是否有任何平台使其平行? MapReduce是个好主意吗?希望您能为我提供一些想法,教程或类似示例。谢谢。

最佳答案

为了获得更好的性能-您应该使用线程

08-05 06:23
查看更多