Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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 如何提高我的程序速度_Java_Optimization - Fatal编程技术网

Java 如何提高我的程序速度

Java 如何提高我的程序速度,java,optimization,Java,Optimization,我将数据存储在两个不同的谷歌电子表格中。一个电子表格有近1000个条目。我使用另一个电子表格进行输入。我的限制是比较这两个电子表格,如果两个电子表格中出现公共数据,则将该数据放入另一个电子表格。因此,我使用for loop对这两个进行比较 我的问题是它需要更多的时间。有没有其他的解决方案来提高我的程序速度。如果你能将数据放入数据库,它将真正帮助你提高读/写速度。也许您可以通过同时读取两个电子表格中的所有数据并将其存储在内存中,然后进行比较来提高速度 没有更多关于您的实现的详细信息,这是我能帮助您

我将数据存储在两个不同的谷歌电子表格中。一个电子表格有近1000个条目。我使用另一个电子表格进行输入。我的限制是比较这两个电子表格,如果两个电子表格中出现公共数据,则将该数据放入另一个电子表格。因此,我使用for loop对这两个进行比较


我的问题是它需要更多的时间。有没有其他的解决方案来提高我的程序速度。

如果你能将数据放入数据库,它将真正帮助你提高读/写速度。也许您可以通过同时读取两个电子表格中的所有数据并将其存储在内存中,然后进行比较来提高速度


没有更多关于您的实现的详细信息,这是我能帮助您的。

如果您的电子表格是Excel电子表格,不要使用Java,将其作为Excel宏在VBA中编码,这将容易100倍。。。而且速度可能也快了100倍。

我想你的速度问题是因为算法不正确。如果您循环,正如您在两个文档上所说的,您有如下内容:

for i in doc1:
  for j in doc2:
    if (compare(i,j) == 0) output(i)
这是1000个项目文档的1000000次操作,速度很慢

这方面有一个简单的改进,它基于对项目的排序。所以您可以附加这两个文档,对它们进行排序,并在数组中迭代。这将产生大约4000个操作,这是一个巨大的改进

不管它是Java还是Visual Basic

我相信,您也可以在SQL中快速完成这种操作

  • 创建两个
    HashSet
    实例,并将每个文档的条目放入其中一个实例中
  • 使用创建两个集合的交点
  • set1
    现在只包含两个文档中存在的条目
  • 运行速度大约是使用嵌套循环的100倍

根据您提供的信息,无法判断程序运行缓慢的原因。一些有用的信息:*您正在处理的数据的大小是多少。如果我们说的是1000万,您可以将所有处理移到内存中。*循环?你肯定至少有两个。让我们了解您的总体算法。*最重要的是——你的目标是什么?你的软件目前需要多长时间,你需要多少时间来加速它。一些较小的增加可以很快完成,而速度的大幅提高可能需要整个重新设计。我不确定您的实现(更多细节会更好),但您能分析代码以了解瓶颈在哪里吗?但我使用了谷歌电子表格