《算法技术手册》一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}时,这与大型浮点数的存储方式相关。需要再次说明的是,算法的计算过程可能还会存在一些预料之外的缓慢之处,只有通过这样的性能测试工作才能发现它们。

相关文章
|
26天前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。
|
4月前
|
机器学习/深度学习 存储 人工智能
极智AI | 周易AIPU算法部署仿真测试
本教程详细记录了使用周易 AIPU 进行算法部署仿真测试的方法,带大家尝尝鲜。
188 0
|
4月前
|
算法 计算机视觉 异构计算
基于FPGA的图像形态学腐蚀算法实现,包括tb测试文件和MATLAB辅助验证
基于FPGA的图像形态学腐蚀算法实现,包括tb测试文件和MATLAB辅助验证
|
1月前
|
机器学习/深度学习 算法 计算机视觉
利用深度学习算法实现图像风格转换技术探究
本文将通过深入分析深度学习算法在图像处理领域的应用,探讨如何利用神经网络实现图像风格转换技术。通过研究不同风格迁移算法的原理和实现方式,揭示其在艺术创作、图像编辑等领域的潜在应用和挑战。
|
1月前
|
编解码 算法 计算机视觉
基于FPGA的图像最近邻插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
基于FPGA的图像最近邻插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
|
2月前
|
存储 算法 搜索推荐
掌握数据结构与算法,成为技术大牛
数据结构与算法是计算机科学中至关重要的基础知识,它们的应用贯穿于各种编程语言和技术领域。本文将介绍数据结构与算法的基本概念及其在实际开发中的应用,帮助读者打下坚实的技术基础,成为真正的技术大牛。
37 4
|
2月前
|
算法 安全 Java
「译文」Java 垃圾收集参考手册(三):GC 算法基础篇
「译文」Java 垃圾收集参考手册(三):GC 算法基础篇
|
2月前
|
算法 Java
「译文」Java 垃圾收集参考手册(八):GC 算法总结
「译文」Java 垃圾收集参考手册(八):GC 算法总结
|
3月前
|
存储 安全 算法
保护数据隐私的安全加密算法:技术守护个人信息安全的利器
在数字化时代,个人信息安全日益受到威胁。本文将深入探讨安全加密算法的重要性,以及如何利用先进的技术保护个人数据的隐私。从对称加密到非对称加密,再到现代密码学的发展,我们将一一解析这些技术的原理和应用。通过了解安全加密算法,我们可以更好地保护个人数据隐私,确保信息的安全传输和存储。
53 3
|
3月前
|
监控 算法 计算机视觉
基于FPGA的图像自适应阈值二值化算法实现,包括tb测试文件和MATLAB辅助验证
基于FPGA的图像自适应阈值二值化算法实现,包括tb测试文件和MATLAB辅助验证