博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

基于Python的密码生成程序的优化

Posted on 2014-01-09 21:17  Rex Kang  阅读(497)  评论(0编辑  收藏  举报

近期刚刚组织完内部的Python基础培训、GUI的开发培训,之后布置的作业是两人一组,利用前面所写的一些模块做一些小软件。

具体就是模拟Advanced Password Generator这个软件的功能。

在初步的指导下,作业是完成了,但是性能差异较大,尤其是生成密码的时候。

分析原因:

  1. 密码通过seed中随机的choice获取一位字符,循环连接出符合长度的。
  2. 生成的密码用字符串连接,然后Append到wxTextCtrl中去。

考虑

  1. 一位密码能否只是用一次随机数产生?
  2. 如果不行,如何尽量减少随机数调用,并且让生成的密码更随机?
  3. 字符连接的效率能否提高?
  4. 展示到wxTextCtrl是否有更高效的方式?
  5. 能否多线程执行?

原软件在生成3000个12位密码(大小写字母、数字)的情况下,等待时间不足0.5秒,而模仿的软件需要等待近30秒,而且期间都是CPU占用率过高。

性能优化的相关内容可以Google一下,如此帖。还有很多,平时就要注重经验的积累。