我的代码花了很长时间才能运行,但是我的程序告诉我否则

时间:2019-05-13 04:02:58

标签: java avl-tree

因此,我目前正在尝试测试用不同数量的数据填充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)");
    }
}

0 个答案:

没有答案