今天折腾那个*差点把老子整崩溃了。上周用户反馈说这玩意儿开个功能要等半分钟,我寻思不就是个网络扫描工具嘛还能卡成PPT?结果自己一试,好家伙,打开配置文件都能转三圈彩虹球。
先把电脑插上性能监视器盯着,点开工具瞬间CPU直接飙到90%,内存跟坐火箭似的往上涨。拆开任务管理器一看,好家伙,主程序啃掉1.2G内存!怪不得开其他软件都卡成狗。抓着源码翻到半夜,发现个更要命的——这破玩意儿居然在循环里疯狂创建线程,完事儿还不给回收,活脱脱的内存泄漏制造机。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
改完美滋滋点了编译,运行直接黑屏!调试器打开发现死锁了——新招的收银员跟仓库管理员互相卡脖子。气得我猛灌两罐红牛,给线程加了个轮班表机制:扫描线程干10毫秒就必须交班,文件操作线程优先插队。
再测试时CPU占用降到40%,内存稳定在300M。刚想站起来蹦迪,结果批量扫描200个IP的时候工具闪退了。抓耳挠腮查了三小时,发现是结果队列塞爆了内存。连夜给队列安了个警报器,超过500条数据就自动减速。
正准备收工的时候突然手贱,试着把日志级别从DEBUG调到INFO。好家伙,这破工具居然藏着二十多个调试断点!关掉之后启动速度直接从8秒缩到2秒,跟捅了马蜂窝似的效率暴增。顺手把界面那些花里胡哨的动画效果全关了,现在点按钮就跟切菜似的利索。
成果相当意外:原版本扫100个IP要5分钟,改完只要47秒。正想找老板邀功,突然收到用户邮件说"工具速度太快导致他泡面没泡开"。行,下回更新考虑整个"老年模式",专门给爱看动画的用户准备。