免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4838 | 回复: 29
打印 上一主题 下一主题

未解决.结贴 脚本 Perl - 比较两个脚本哪个更好 (给点建议) [复制链接]

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-10-03 21:44 |只看该作者 |倒序浏览
本帖最后由 sunzhiguolu 于 2015-10-04 14:07 编辑

    我对同一个问题写了两个 Perl 脚本, 希望能够客观的比较一下两个脚本哪个更好一些. 我使用 shell 的 time 命令分别对两个脚本进行计时. 以下是两个脚本的统计结果 (每个脚本执行了五次):
第一个脚本的统计结果:

  1. real        0m0.016s user        0m0.008s sys        0m0.003s
  2. real        0m0.016s user        0m0.007s sys        0m0.004s
  3. real        0m0.016s user        0m0.009s sys        0m0.003s
  4. real        0m0.015s user        0m0.009s sys        0m0.002s
  5. real        0m0.021s user        0m0.012s sys        0m0.000s
复制代码
第二个脚本的统计结果:

  1. real        0m0.016s user        0m0.009s sys        0m0.003s
  2. real        0m0.015s user        0m0.007s sys        0m0.003s
  3. real        0m0.012s user        0m0.007s sys        0m0.002s
  4. real        0m0.012s user        0m0.007s sys        0m0.003s
  5. real        0m0.017s user        0m0.009s sys        0m0.002s
复制代码
两次结果比较:

  1. real     0m0.0168s user     0m0.009s   sys    0m0.0024s
  2. real     0m0.0144s user     0m0.0078s  sys    0m0.0026s
复制代码
我有一些疑惑向大家请教:
1.> 在进行脚本性能比较时使用 time 命令是否合适;
2.> 如果适合的话, 使用 time 命令进行比较后哪个结果的值应该重点参考, 测试的次数几次为佳;

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
2 [报告]
发表于 2015-10-03 22:32 |只看该作者
本帖最后由 sunzhiguolu 于 2015-10-03 22:32 编辑

如果使用代码的方式比较直观, 使用代码也行. (如果您觉得)
    我总感觉在写代码的时候随着学习的知识不断增多解决问题的思路或方式也在发生变化. 如果能够通过比较得出一个比较直观的结果, 那么以后编写代码时就能选择性能较好的方式进行编写. 以上只是我个人的理解, 如果有不对之处还请大家给予指点. 谢谢大家了...

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
3 [报告]
发表于 2015-10-03 22:57 |只看该作者
回复 1# sunzhiguolu


    总的执行时间在1s以下的比较没有什么参考价值;其他因素(例如内核调度,系统中其他进程的影响,等等)造成的波动可能比要比较代码本身的差异还大。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2015-10-03 23:00 |只看该作者
回复 2# sunzhiguolu


    代码首先要清晰(逻辑清晰,结构清晰,风格一致,标示符命名恰当,等等),然后再考虑效率问题。

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
5 [报告]
发表于 2015-10-03 23:23 |只看该作者
本帖最后由 sunzhiguolu 于 2015-10-03 23:26 编辑

回复 3# MMMIX
    谢谢您的回复, 我编写的代码只是针对板块中的一些帖子自己动手写的. 因为回复的帖子有限 (我的能力所致), 所以对于回复过的帖子印象都比较深刻. 有时候脑海中突然冒出个想法, 感觉比之前的思路要好一些, 就再来写一次. 因为这样就有了这个主题.
   
代码首先要清晰(逻辑清晰,结构清晰,风格一致,标示符命名恰当,等等)

您所讲的这些我都一直记在心里, 如果您哪天看到我的代码中存在上面您提到的问题还请您指正. 我会一直按照这种方式进行编码, "逻辑清晰" 这一条是我的软肋. 在这一点上我还需要进一步加强. 另外, 您能否在这点上具体说说, 在以后的编码时我好有一个清晰的思路, 出现问题时也好将错误的思路改正过来...  谢谢您.

   

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
6 [报告]
发表于 2015-10-03 23:47 |只看该作者
本帖最后由 sunzhiguolu 于 2015-10-04 14:00 编辑

    如果您看到我提出的最后一个问题, "逻辑清晰" 这方面有哪些好的建议. 还请大家指出. 有些时候在思考一个问题的解决思路时, 总被一些细节问题干扰. 导致大脑总好像有点短路的感觉. 所以写出的代码有时问题多多, 这一点我非常有体会. 如果您也经历过这段时期, 还请大家给点经验, 在以后的编码实践中也好尽量避免出现这种尴尬的情况. 好了, 我已经全部表达完毕, 最后谢谢大家.

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
7 [报告]
发表于 2015-10-04 01:48 |只看该作者
同样的运行环境(语言环境),同样的时间基准计算方法,可以比较两段代码的快慢。你可以用 5000 次或更多比较,结果更直观。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
8 [报告]
发表于 2015-10-04 10:38 |只看该作者
sunzhiguolu 发表于 2015-10-03 23:47
如果您看到我提出的最后一个问题, "逻辑清晰" 这方面有哪些好的建议.


多练习,多总结,多反思;没有速成的捷径

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
9 [报告]
发表于 2015-10-04 11:25 |只看该作者
Perl 有 Benchmark 模块,读下它的文档

评分

参与人数 1信誉积分 +10 收起 理由
sunzhiguolu + 10 谢谢您的帮助, 向您致敬.

查看全部评分

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
10 [报告]
发表于 2015-10-04 14:04 |只看该作者
本帖最后由 sunzhiguolu 于 2015-10-04 14:04 编辑

@104359176, @MMMIX, @zhlong8
   多谢大家的帮助, 谢谢...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP