Python 板


LINE

#更2021/09/14 感谢各位大大的支援 详细可以看sooge大的那篇文 for i in range() 如果是包在function里 那个i 会使用 STORE_FAST 当执行到FOR_ITER时 会预测下一个指令为STORE_FAST 所以会直接peek到再下一个opcode 但 STORE_NAME 不会 包在function里 STORE_FAST https://i.imgur.com/yNTNuHN.jpg 如果没包的话会是用 STORE_NAME https://i.imgur.com/8ml1USm.jpg 图中的TOS是 Top-of-stack ============================== 如题 我想知道在function内外执行速度上会不好有差异 func()是随便写的 然後for回圈重复执行func() 一支程式是直接写在外面执行 另一支是写一个main() function去执行 直接在外面执行 https://i.imgur.com/wxDf04N.jpg 写在main()去执行 https://i.imgur.com/RxNR7wP.jpg 执行後发现是写在main()里的执行的比较快 https://i.imgur.com/x9S8rez.jpg 我想请问为什麽会有这个速度上的差别 我猜测是因为range(10000000) 我有 print( id(10000000)) 我发现那个1000000是有记忆体位置的 所以是因为那个10000000如果写在main里会是local变数 而local变数读取比较快 是这样吗? ----- Sent from JPTT on my iPhone --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.217.72.178 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1631598489.A.874.html
1F:推 lycantrope: 只测一次不准,而且要用time.perf_counter比较精确 09/14 14:59
2F:→ bamboopole: 我测满多次了,差不多都是这个数字 09/14 15:12
3F:→ bamboopole: time.perf_counter 我在试试看!感谢 09/14 15:12
4F:推 s0914714: 看不出来有啥差 不过一般来说存取local是会比global快 09/14 15:53
5F:→ s0914714: 可以用dis.dis看一下指令长怎样 09/14 15:53
6F:推 pmove: 我自己实测也是类似原po的结果,但不知道主因是啥? 09/14 17:15
7F:推 s0914714: 测试了一下 包在function for的i对应指令是STORE_FAST 09/14 18:09
8F:→ s0914714: 没包成function for的i指令是STORE_NAME 应该是差在这 09/14 18:09
9F:推 s0914714: 还有call function时 包-LOAD_GLOBAL 不包-LOAD_NAME 09/14 18:15
10F:→ s0914714: 实际状况可能要请其他人补充 因为我也只是猜测 09/14 18:16
11F:推 kurapica1106: 测试结果跟原PO一样 09/14 18:28
12F:推 sooge: 自己看 09/14 18:52
13F:推 sooge: https://reurl.cc/95X9mY 09/14 18:55
※ 编辑: bamboopole (180.217.72.178 台湾), 09/14/2021 21:46:13
14F:推 jeff082: 10000000 当然有记忆体位置啊,python里的一切都是物件 09/19 17:33







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP