《算法技术手册》一2.5 基准测试

简介: 本节书摘来华章计算机《算法技术手册》一书中的第2章 ,第2.5节, George T.Heineman Gary Pollice Stanley Selkow 著 杨晨 曹如进 译 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.5 基准测试

Python运算符2017_09_20_101803可以很快地执行指数运算。2**851的计算结果如下所示:
150150336576094004599423153910185137226235191870990070733
557987815252631252384634158948203971606627616971080383694
109252383653813326044865235229218132798103200794538451818
051546732566997782908246399595358358052523086606780893692
34238529227774479195332149248
在Python中,计算与平台无关。也就是说,在大多数平台下,使用Java或者C语言计算2851会导致数值溢出。但是使用Python,就可以快速得到上述示例中的结果。那么,Python抽象化底层的架构究竟是一个优点还是缺点呢?考虑以下两个假设:
假设H1
2017_09_20_101932
假设H2
大数(例如在之前处理的数)能够像其他数一样使用同样的方式进行处理,例如123 827 或者997。
2017_09_20_102027
奇怪的是,性能似乎有着不同的表现,第一种表现是在x小于16时,第二种表现是x在145左右时,第三种是在x大于200之后。这些行为表明Python在使用2017_09_20_101803运算符计算幂次时使用了平方幂(exponentiation by squaring)算法。而使用for循环手动计算2x的性能为平方级。
为了验证假设H2,我们进行了另外一个实验,首先预处理计算出2n,然后计算*2n所需要的时间。10 000次试验后总的执行时间如图2-7所示。
为什么图2-7的点不在一条直线上?当x等于多少时,这条线开始不为直线呢?可以看出乘法运算符(*)被重载过,因为这个操作会根据乘数的不同而做不同的事情,乘数可以是浮点数、单字的整型、多字的大整数,或为这些类型的组合形式。
2017_09_20_102212
图2-7:大数乘法的执行时间
第一个转折点发生在x={64,65}时,这与大型浮点数的存储方式相关。需要再次说明的是,算法的计算过程可能还会存在一些预料之外的缓慢之处,只有通过这样的性能测试工作才能发现它们。

相关文章
|
11天前
|
SQL 存储 算法
【MySQL技术内幕】6.4-锁的算法
【MySQL技术内幕】6.4-锁的算法
23 1
|
11天前
|
存储 算法 关系型数据库
【MySQL技术内幕】5.7- InnoDB存储引擎中的哈希算法
【MySQL技术内幕】5.7- InnoDB存储引擎中的哈希算法
14 1
|
13天前
|
算法 C语言 Ruby
分形逃逸时间算法中的 Normalized Iteration Count(NIC)技术 让颜色更柔和
Normalized Iteration Count (NIC) 技术是一种提升逃逸时间算法中分形图像质量的方法,它产生更平滑的颜色过渡。数学公式表示为:`mu = n + 1 - log(log(|Z(n)|)) / log(p)`,其中 `Z(n)` 是迭代次数,`|Z(n)|` 是复数模长,`p` 通常取2。示例代码提供了 Ruby, Maxima 和 C 语言的实现。
|
15天前
|
存储 自然语言处理 算法
编辑距离算法全解析:优化文本处理的关键技术
编辑距离算法全解析:优化文本处理的关键技术
|
20天前
|
算法 NoSQL Python
开山之作!Python数据与算法分析手册,登顶GitHub!
若把编写代码比作行军打仗,那么要想称霸沙场,不能仅靠手中的利刃,还需深谙兵法。 Python是一把利刃,数据结构与算法则是兵法。只有熟读兵法,才能使利刃所向披靡。只有洞彻数据结构与算法,才能真正精通Python。
|
20天前
|
存储 人工智能 算法
RAG技术的高级应用和算法
文章主要探讨了RAG技术的高级应用和算法,系统化地整理了各种方法。
|
20天前
|
机器学习/深度学习 数据采集 算法
基于机器学习的推荐算法构建技术详解
【6月更文挑战第4天】本文详述了构建基于机器学习的推荐算法,特别是协同过滤方法。从用户和物品相似性的角度,解释了用户-用户和物品-物品协同过滤的工作原理。涵盖了数据准备、预处理、特征工程、模型训练、评估优化及结果展示的构建流程。推荐算法在电商、视频和音乐平台广泛应用,未来将受益于大数据和AI技术的进步,提供更智能的推荐服务。
|
26天前
|
算法 NoSQL Python
开山之作!Python数据与算法分析手册,登顶GitHub!
若把编写代码比作行军打仗,那么要想称霸沙场,不能仅靠手中的利刃,还需深谙兵法。 Python是一把利刃,数据结构与算法则是兵法。只有熟读兵法,才能使利刃所向披靡。只有洞彻数据结构与算法,才能真正精通Python
|
18天前
|
存储 运维 算法
社交软件红包技术解密(十三):微信团队首次揭秘微信红包算法,为何你抢到的是0.01元
本文中,我们将介绍几种主流的IM红包分配算法,相信聪明的你一定能从中窥见微信红包技术实现的一些奥秘。
15 0
|
1月前
|
存储 算法 搜索推荐
【大数据分析与挖掘技术】Mahout推荐算法
【大数据分析与挖掘技术】Mahout推荐算法
25 0

热门文章

最新文章