Linux 暴力破解rar密码 性能查看

python使用自带的性能分析工具。
生成报告
# python -m cProfile -o test1.out decRAR.py tt.rar passwd.txt
tt.rar pass is 123

查看报告
# python -c “import pstats; p=pstats.Stats(‘test1.out’); p.print_stats()”
Sat Jul 30 10:07:38 2016 test1.out

305 function calls in 2.922 seconds

Random listing order was used

ncalls tottime percall cumtime percall filename:lineno(function)
50 0.001 0.000 0.001 0.000 {method ‘close’ of ‘file’ objects}
1 0.000 0.000 0.000 0.000 /usr/lib64/python2.7/site.py:357(__call__)
49 0.000 0.000 0.000 0.000 {method ‘find’ of ‘str’ objects}
49 0.006 0.000 2.919 0.060 /usr/lib64/python2.7/commands.py:56(getstatusoutput)
49 0.001 0.000 2.920 0.060 /usr/lib64/python2.7/commands.py:48(getoutput)
49 0.012 0.000 0.012 0.000 {posix.popen}
49 2.900 0.059 2.900 0.059 {method ‘read’ of ‘file’ objects}
1 0.000 0.000 0.000 0.000 {open}
2 0.000 0.000 0.000 0.000 {method ‘split’ of ‘str’ objects}
1 0.000 0.000 0.000 0.000 /usr/lib64/python2.7/warnings.py:14(warnpy3k)
1 0.000 0.000 2.922 2.922 decRAR.py:8()
1 0.000 0.000 0.000 0.000 /usr/lib64/python2.7/commands.py:20()
1 0.000 0.000 0.000 0.000 {method ‘disable’ of ‘_lsprof.Profiler’ objects}
1 0.000 0.000 0.000 0.000 {method ‘readlines’ of ‘file’ objects}
1 0.002 0.002 2.922 2.922 decRAR.py:13(main)

结论,密码有49个,所以调用解密命令49次,时间用在读文件上,就是解密部分。这样单进程单线程的结果应该已经是最佳了。

golang
不用协程部分,把main修改如下。

# time go run decRAR.go
tt.rar pass is 123
exit status 1

real 0m3.462s
user 0m3.117s
sys 0m0.291s
golang性能分析软件暂时没有用到。

发表评论

电子邮件地址不会被公开。 必填项已用*标注