2013-03-10 24 views
0

我写了一个执行算法的函数。我做了4种不同的类型,并且比较它们的执行时间没有问题(在java中)。但是,我想将我的算法与三种现有的第三方实现进行比较。当然,由于它们是封闭源,这不是完全可能的。不过,我的应用程序有一个gui,它有一个按钮来显示命令,然后弹出结果。 (尽管这些不是算法的一部分,但对我而言,比较点击执行\运行到结果显示在屏幕上的时间就足够了。)测量第三方软件速度执行时间

我只是想知道最佳实践用于比较这些不同方法的速度。我必须做点什么,所以如果我不能想到任何事情,我想我会使用秒表,但是,更复杂的方法显然是更可取的。

+0

更复杂的'结束时间,startTime'我不认为这是一个 – Cratylus 2013-03-10 19:00:52

+0

感谢suggestion-我可以用我的功能,但并不:
您可以使用System.currentTimeMillis()像下面?与第三方的,因为我没有访问他们的源代码,并且不能从我的代码中调用他们的任何功能。我将仅仅是作为最终用户来测试第三方。 – user2152812 2013-03-10 19:08:11

+0

不能反编译库并使用反射来调用算法的方法吗? – Cratylus 2013-03-10 19:22:35

回答

0

您可以记录调用第三方方法的时间,并从记录的时间中取消当前时间的差异。这会给你准确的时间。当比较

long start=System.currentTimeMillis(); 
//Call the thrd prty method 
syso("Time taken:"+(System.currentTimeMillis()-start)); 
+0

但是,感谢您的建议,我无法访问这些方法。作为最终用户,我只需要使用第三方应用程序进行测试。 – user2152812 2013-03-10 19:06:26

+0

哦,我明白了......然后你做对了。 – Anubhab 2013-03-10 19:11:51

+0

秒表的方式似乎不知何故 - 虽然我认为即使从第三方应用程序中弹出新窗口,Windows也可能有一些时机。 – user2152812 2013-03-10 19:14:21