首页 > 编程语言 >Python的输出print语句是否会显著降低运行速度?

Python的输出print语句是否会显著降低运行速度?

时间:2022-12-12 15:35:14浏览次数:78  
标签:语句 end Python datetime start second microsecond print

先说结论,会,并且运行时间是一般赋值语句的200倍左右,这个知乎回答是我昨天写的,内容是相同的。

首先既然是探讨输出是否影响程序运行时间,那肯定就要控制是否输出作为唯一变化的参量,并获取在不同规模下的数据量的影响。

以python为例,代码如下:

import datetime
import numpy as np

fn = open('/exports/hhr346/run.txt', 'w')
for time in np.arange(1, 50):
	start = datetime.datetime.now()
	start_second = start.second
	start_microsecond = start.microsecond
	for a in range(1000*time):
		a += 1
		#print('a is ', a)

	end = datetime.datetime.now()
	end_second = end.second
	end_microsecond = end.microsecond
	delta = (end_second - start_second)*1000000 + (end_microsecond - start_microsecond)
	fn.write('{}'.format(delta))
	fn.write('\n')

输出a的部分为控制是否输出的语句,前后的不同仅为是否注释

导出写入的文本文件来画图

二者时间比较

从结果上可以看到,二者都大致是线性关系,不同的是选择输出时,结果的随机性更大,但是线性关系是显著的;选择print时,单次循环的时间增量在同等条件下是不print的200倍,所以print对于运行时间的影响还是相当大的。

后续可以去探究打印字符的多少对运行时间的影响程度,多打印字符是否时间就会更多?不同语言是否影响不同?

实际上这部分探究只能算是一种粗略的探究,程序还存在一些问题,因为获取的是微秒和秒,所以运行时不要跨分钟,否则就会出现离谱的负数;还有就是使用的datetime 返回的时间实际上和系统的性能和延迟有关,所以实际上精度并不太高,并且有些时候也可以观察到输出并不是线性增长的。

并且在验证的过程应用了获取时间和写入文件这样“多余”的操作(还有导入模块影响的时间),必然会对总体运行时间造成影响,所以也许更好的方法是一个个用 time 命令来获取每次运行的时间?(bushi

感觉这个问题还是很有趣的,就在博客园里也记录一下。

标签:语句,end,Python,datetime,start,second,microsecond,print
From: https://www.cnblogs.com/hhr346/p/16976166.html

相关文章

  • 【PyQt6】Python中QDateTime的常用方法总结
    前置QtDesigner里拖了一个QDateTimeEdit,设置时间格式为“yyyy/MM/ddHH:mm:ss”常用函数dt1=object1.dateTime()#object为QDateTimeEdit对象dt2=object2.dateTi......
  • sql中查询语句如何让字符串转化数字方法
    错误方法:convert(int,字段名)或者 cast(字段名asint)函数对的,但是这样写完全错误!!!!!应该CONVERT(字段名,SIGNED)或者CAST(字段名ASSIGNEDinteger)例如:a、SELECTC......
  • printf格式化输出
    1. 2.    ......
  • 数据分析必备工具书:Python官方中文文档
    本文推荐数据分析的必备工具书:Python官方文档,注意,这是一份中文文档!(作者孙强)一、前言今天推荐一下Python官方文档,注意,这是一份中文文档!主题:可以说非常详细了,Python3.7全新变......
  • MySQL增加字段SQL语句
    使用ALTERTABLE向MySQL数据库的表中添加字段,-向buildBaseInfo中添加字段ALTERTABLEtable_nameADDCOLUMNcolumn_nameVARCHAR(100)DEFAULTNULLCOMMENT'新加字......
  • 常见数据结构与算法的Python实现
    有人问我数据结构与算法怎么学?怎么用Python实现常见的数据结构算法?我找到一个github标星66.6k+的仓库,把各种常见算法用Python实现了,而且还有动图演示,非常值得推荐。(黄海广)仓......
  • python3中requests库重定向获取URL
     importrequestsdefrequest_jd():url='http://jd.com/'#allow_redirects=False这里设置不允许跳转response=requests.get(url=url,allow_redirects=False......
  • TheFuck—Python写的超实用命令纠正工具
    哈喽兄弟们,我们在学习Python的过程中,有这么一款工具,可以轻松纠正我们写错的命令,简直太好用了~TheFuck是一款功能强大的、Python编写的应用程序,可用于纠正控制台命令......
  • Python的入门学习Day 16~18——form”夜曲编程“
    Day16Day17time:2021.8.14.​今天七夕。激动,喜悦。平静呼吸,嘻嘻~也许我也是天空。去看课程了,嗯。今天重点学习了循环的对立面——”跳出循环“的操作。一如......
  • Python的入门学习Day 22~24——form”夜曲编程“
    Day22time:2021.8.19.​顺着歌曲的旋律,内心一下子就安静了呢。终于,我可以好好写日记了,徜徉在一片金色的花海里。今天主要学习了匿名函数。这是一种很有趣的函数......