更快的是:将一个数组传递给一个类并为每个循环执行一个操作,或者为一个类的每个循环执行一个操作

时间:2012-04-19 10:07:38

标签: java arrays performance class

我想知道哪种方法在性能和最佳实践方面是正确的。

我有一系列网址,我正在抓取这些网页的内容。我有一个单独的类来处理刮擦。

目前我将数组列表传递给类,然后该类循环遍历数组内容,为每个数组抓取内容。我相信这是最好的方式。

我想到的另一种方法是遍历数组,我会将每个URL传递给类。这似乎对我来说会慢一些,但我不确定。

如果这两种方法都可行,那么他们的专业和骗局是什么?

2 个答案:

答案 0 :(得分:5)

我建议你做你认为最清楚,最简单的事情。

传递阵列的速度可能略微快,可能会节省几纳秒,但除非您所做的事情只有几纳秒,否则你很可能无法区分它。 / p>

答案 1 :(得分:1)

从技术上讲,由于每页方法调用的额外开销(假设这是你正在做的事情),将每个项目传递给类会更慢:

URLProcessor up = new URLProcessor();
for(String url: URLs) {
   up.process(url); // method call for each URL
}

而不是:

up.process(URLs); // a single method call

然而,除非该方法被调用数百万次,否则很可能不会以明显的方式影响运行速度。程序中发生的重量级任务要远远多于此。