Python 加减乘除左右移求幂运算符耗时对比(一清二楚)

本文主要是介绍Python 加减乘除左右移求幂运算符耗时对比(一清二楚),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文依次统计了Python3.5中

赋值=   加+   连加+=   减-   乘*   幂**   除/   整数除法//   先除再强制转换为整型 int(/)   取余%   右移>>   左移<<   取反=-

这十余种运算方式重复执行1000W次的耗时。(运行结果和结论在文章最下方)

代码如下:

from time import *iters = 10000000  # 1000w
x = 123456start_time = time()
for i in range(iters):tmp = i
end_time = time()
print('Assign = : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(iters):tmp = x + i# x = x + i
end_time = time()
print('Add + : ' + str((end_time - start_time) * 1000) + ' ms')tmp = 0
start_time = time()
for i in range(iters):tmp += i
end_time = time()
print('Serial add += : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(iters):tmp = x - i
end_time = time()
print('Sub - : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(iters):tmp = x * i
end_time = time()
print('Multi * : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(iters):tmp = x ** 2
end_time = time()
print('Pow **2 : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(iters):tmp = x ** 8
end_time = time()
print('Pow **8 : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(iters):tmp = pow(x, 2)
end_time = time()
print('pow(x, 2) : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(iters):tmp = pow(x, 8)
end_time = time()
print('pow(x, 8) : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(1, iters+1):tmp = x / i
end_time = time()
print('Div / : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(1, iters+1):tmp = x // i
end_time = time()
print('Int div // : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(1, iters+1):tmp = int(x / i)
end_time = time()
print('Div and Int() int(/) : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(1, iters+1):tmp = x % i
end_time = time()
print('Mod % : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(iters):tmp = x >> 1
end_time = time()
print('Right shift >> : ' + str((end_time - start_time) * 1000) + ' ms')start_time = time()
for i in range(iters):tmp = x << 1
end_time = time()
print('Left shift << : ' + str((end_time - start_time) * 1000) + ' ms')tmp = 1
start_time = time()
for i in range(iters):tmp = -tmp
end_time = time()
print('Neg =- : ' + str((end_time - start_time) * 1000) + ' ms')

两次运行结果:

其一:

其二:

结论:

  • python中,加减乘除左右移执行时间相差不大
  • 用x=-x的取反操作远远快于x*=-1
  • 用x*x的乘法求平方远快于x**2,**求幂操作会随着幂指数的增加而增加耗时
  • pow(x, y)略慢于x**y
  • 类型转换比较耗时

环境:

python3.5

这篇关于Python 加减乘除左右移求幂运算符耗时对比(一清二楚)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/675718

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

Python轻松实现Word到Markdown的转换

《Python轻松实现Word到Markdown的转换》在文档管理、内容发布等场景中,将Word转换为Markdown格式是常见需求,本文将介绍如何使用FreeSpire.DocforPython实现... 目录一、工具简介二、核心转换实现1. 基础单文件转换2. 批量转换Word文件三、工具特性分析优点局

Python中4大日志记录库比较的终极PK

《Python中4大日志记录库比较的终极PK》日志记录框架是一种工具,可帮助您标准化应用程序中的日志记录过程,:本文主要介绍Python中4大日志记录库比较的相关资料,文中通过代码介绍的非常详细,... 目录一、logging库1、优点2、缺点二、LogAid库三、Loguru库四、Structlogphp

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

Python海象运算符:=的具体实现

《Python海象运算符:=的具体实现》海象运算符又称​​赋值表达式,Python3.8后可用,其核心设计是在表达式内部完成变量赋值并返回该值,从而简化代码逻辑,下面就来详细的介绍一下如何使用,感兴趣... 目录简介​​条件判断优化循环控制简化​推导式高效计算​正则匹配与数据提取​性能对比简介海象运算符

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达