栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在检查奇数时是否&%比%快?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在检查奇数时是否&%比%快?

是的

timeit
标准库中的模块是检查这些内容的方式。例如:

AmAir:stko aleax$ python -mtimeit -s'def isodd(x): x & 1' 'isodd(9)'1000000 loops, best of 3: 0.446 usec per loopAmAir:stko aleax$ python -mtimeit -s'def isodd(x): x & 1' 'isodd(10)'1000000 loops, best of 3: 0.443 usec per loopAmAir:stko aleax$ python -mtimeit -s'def isodd(x): x % 2' 'isodd(10)'1000000 loops, best of 3: 0.453 usec per loopAmAir:stko aleax$ python -mtimeit -s'def isodd(x): x % 2' 'isodd(9)'1000000 loops, best of 3: 0.461 usec per loop

如您所见,在我的(第一天==旧==慢;-) Macbook Air上,该

&
解决方案的重复速度比该
%
解决方案快7到18纳秒。

timeit
不仅告诉您更快的方法,而且告诉您执行速度快了多少(只需运行几次测试),这通常表明它极其重要(调用函数的开销大约为400时,您 真的
关心10纳秒的差异)吗??!-)…

自Knuth撰写以来已经有35年的时间了(使计算机更快地获得数量级的增长!),已经说服了程序员说微优化本质上是不相关的,这已被证明是不可能完成的任务。

我们应该忘记效率低下的问题,例如大约97%的时间:过早的优化是万恶之源。

正如他所解释的那样,这是引用自Hoare的一份更早的声明。我猜每个人都完全相信,他们的案件占剩下的3%!

因此,我们不停地重复“无关紧要”,我们(特别是蒂姆·彼得斯(Tim
Peters)应得的荣誉)放入标准的Python库模块中

timeit
,这使得测量此类微基准变得轻而易举,从而至少让 一些
程序员说服自己,嗯,这种情况确实属于97%的人群!-)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638474.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号