如何使用 Benchmark 评估程序的性能
Posted
技术标签:
【中文标题】如何使用 Benchmark 评估程序的性能【英文标题】:How can I use Benchmark to evaluate the performance for a program 【发布时间】:2016-10-25 22:06:51 【问题描述】:我构建了一个程序来加密数据库中的一些数据字段。 在这个程序中,我从组合框中选择加密算法(AES,RC4,...)并进行加密和解密。
程序运行良好,但我想对这些算法进行比较。如何在这些算法之间进行比较和评估?想要的比较参数是加密和解密时间,对加密数据的检索查询次数,还有哪个更安全?如何使用基准?
【问题讨论】:
您可以使用分析器来查看您的程序(或测试)在哪里花费时间。 我下载了试了下,发现它处理的是一个程序,但是我想处理每个算法的加解密功能 【参考方案1】:在我看来:您不应该在任何新系统中使用 RC4。它并没有坏到你应该主动运行它,但是如果你有一个选项(比如 AES),你应该使用它。
时间比较:
public class gettime
public static void main(String[] args)
long startTime = System.currentTimeMillis();
try
Thread.sleep(1000);
// Instead of Thread write your codes here
catch (InterruptedException e)
e.printStackTrace();
long stopTime = System.currentTimeMillis();
System.out.println(stopTime - startTime + "msec");
【讨论】:
是的,你是对的,但我只想做一个比较,这里还有另一种叫做 REA 的新算法。 很抱歉,我对 REA 没有任何想法 :) 但是我问的是算法或基准之间进行比较的方法 OK(时间)你可以使用“System.out.println(System.currentTimeMillis());”当方法开始和结束时,然后比较(AES,RC4)两种方法,您将实现。 我已经使用过类似这样的东西 long startTimeencAES = System.nanoTime() String afterConcatjobid = useToEncryptAESDEC.AES_DECRYPT(jobidValue,encform.vkey); String afterConcatadress = useToEncryptAESDEC.AES_DECRYPT(adressValue,encform.vkey); elapsedTimedecAES = System.nanoTime()-startTimeencAES; System.out.println(+elapsedTimedecAES + "ns.");以上是关于如何使用 Benchmark 评估程序的性能的主要内容,如果未能解决你的问题,请参考以下文章
Online Object Tracking: A Benchmark 翻译