Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';s更快:将数组传递给类并对每个循环执行一次for,或者对类执行一次for-each循环_Java_Arrays_Performance_Class - Fatal编程技术网

Java 什么';s更快:将数组传递给类并对每个循环执行一次for,或者对类执行一次for-each循环

Java 什么';s更快:将数组传递给类并对每个循环执行一次for,或者对类执行一次for-each循环,java,arrays,performance,class,Java,Arrays,Performance,Class,我想知道哪种方法在性能和最佳实践方面是正确的 我有一个URL数组,我正在抓取这些页面的内容。我有一个单独的班来处理刮削 当前,我将数组列表传递给类,然后该类循环遍历数组内容,为每个数组刮取内容。我相信这是最好的办法 我想到的另一种方法是在数组中循环,然后将每个URL传递给类。这对我来说似乎会慢一些,但我不确定 如果这两种方法都可行,那么它们的优缺点是什么?我建议你做你认为最清楚最简单的事情 通过阵列可能会稍微快一点,并可能节省几纳秒,但除非您所做的是几纳秒的数量级,否则您很可能无法分辨差异。我建

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

我有一个URL数组,我正在抓取这些页面的内容。我有一个单独的班来处理刮削

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

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


如果这两种方法都可行,那么它们的优缺点是什么?

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


通过阵列可能会稍微快一点,并可能节省几纳秒,但除非您所做的是几纳秒的数量级,否则您很可能无法分辨差异。

我建议您做您认为最清晰、最简单的事情


传递数组的速度可能会稍微快一点,并且可能会节省几纳秒,但除非您所做的是几纳秒的数量级,否则您很可能无法分辨差异。

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

而不是:

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

但是,这很可能不会显著影响运行速度,除非该方法被调用数百万次。程序中发生的重量级任务远不止此。

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

而不是:

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

但是,除非该方法被调用数百万次,否则这很可能不会显著影响运行速度。一个程序中发生的重量级任务远不止此。

听起来像是微优化和过早优化-做任何可读性更好的事情…如果您稍后将评测您的程序并看到本部分i这是一个BoeLeNek,你可能想考虑重构——但是直到那时,它不值得你去修改它。在性能方面,这是没有任何意义的。循环管理是你的过程中的一个微观的、微小的部分。在创建对象时不会注意到任何差异。所以只有当你有问题时,才能保持最好的可维护性和优化。听起来像微的和过早的优化-做任何更可读的…如果你稍后将对你的程序进行剖析,看到这一部分是一个ButLeNek,你可能想考虑重构-但是直到那时,它是N。不值得你花时间修改它。就性能而言,这不可能意味着什么。循环管理是你过程中一个微观的、消失不见的小部分。amit所说的是真的。如果你正在解析任何字符串或进行任何网络通信,你将不会注意到在创建对象方面的任何差异。因此,始终选择最佳维护a只有当你遇到问题时才可以访问和优化。非常感谢,我不确定这两种方法是否会对我的应用程序产生显著影响。谢谢你的回答!每次方法调用都会增加几个N,因此如果你调用它10亿次,那就是几秒钟。非常感谢,我不确定这两种方法是否会对我的应用程序产生显著影响。谢谢你的回答!每个方法调用都会增加几个ns,所以如果你调用它十亿次,那就是几秒钟。