因此,我目前正在尝试测试用不同数量的数据填充AVLTree需要多长时间。当向树中添加少量数据(例如16个对象或2824个对象)时,我的程序可以在几秒钟内运行(我正在使用手机秒表记录时间)。但是,当我向树中添加约11000个对象时,大约需要28秒,而当我尝试向树中添加250000个对象时,我的程序似乎永远无法完成运行。
在程序中,我添加了一个变量,该变量在代码的开头存储了当前时间,另一个变量在末尾也存储了当前时间,这样我就可以大致计算出程序运行了多长时间。但是,有趣的是,当我用2824个对象填充AVLTree时,它说花了〜1.56秒才能运行,而当我用〜11000个对象填充AVLTree时,它显然花了同一时间。
使用我的秒表可以看到它花了〜28秒,而我的程序告诉我花了〜1.56秒,这使得很难真正了解导致问题的原因。顺便说一下,我当前使用的编译器是Eclipse Java Oxygen。
public class AVLTreeTester {
public static void main(String[] args) {
long start = System.currentTimeMillis();
AVLTree<IPAddress, URL> avlTree = new AVLTree<IPAddress, URL>();
BufferedReader br = null;
String line;
try {
br = new BufferedReader(new FileReader("src/data/top-
250k.txt"));
while ((line = br.readLine()) != null) {
String[] values = line.split("\t");
IPAddress newIP = new IPAddress(values[1]);
URL newURL = new URL(values[0]);
avlTree.add(newIP, newURL);
}
}catch (IOException e) {
e.printStackTrace();
}
avlTree = null;
long stop = System.currentTimeMillis();
double time = stop - start / 1000;
System.out.println("Took: " + time + " second(s)");
}
}