如何使用 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 评估程序的性能的主要内容,如果未能解决你的问题,请参考以下文章

如何使用jmeter测试qps

Online Object Tracking: A Benchmark 翻译

脚本好玩的AE性能测试跑分工具 AE Benchmark

如何使用Jmeter,maven,Jenkins构建云性能测试平台

几款优秀的Linux基准测试工具

Spark Streaming性能测试有啥好的benchmark吗