Jupyter Magic - Timing(%%time %time %timeit)

本文介绍了Jupyter中用于性能测试的魔法命令%%time、%time和%timeit的使用方法,通过实例演示如何评估代码运行效率,适用于任何对代码执行速度有疑问的场景。

对于计时有两个十分有用的魔法命令:%%time 和 %timeit. 如果你有些代码运行地十分缓慢,而你想确定是否问题出在这里,这两个命令将会非常方便。

1.%%time 将会给出cell的代码运行一次所花费的时间。

%%time
import time
for _ in range(1000):
time.sleep(0.01)# sleep for 0.01 seconds

output:
CPU times: user 196 ms, sys: 21.4 ms, total: 217 ms
Wall time: 11.6 s
2.%time 将会给出当前行的代码运行一次所花费的时间。

import numpy
%time numpy.random.normal(size=1000)

output:
Wall time: 1e+03 µs
3.%timeit 使用Python的timeit模块,它将会执行一个语句100,000次(默认情况下),然后给出运行最快3次的平均值。

import numpy
%timeit numpy.random.normal(size=100)

output:
12.8 µs ± 1.25 µs per loop (mean ± std. dev. of 7 runs, 100000 loops each)
 
---------------------
作者:牛腩面
来源:优快云
原文:https://blog.youkuaiyun.com/shuibuzhaodeshiren/article/details/86650688
版权声明:本文为博主原创文章,转载请附上博文链接!

要减少 CSS 动画代码对 CPU 的占用,可以考虑以下优化方案: ### 使用 GPU 加速 使用 `will-change` 属性来提前告知浏览器某个元素即将发生变化,让浏览器提前做好优化准备。同时,尽量使用 `transform` 和 `opacity` 属性进行动画,因为这两个属性在进行动画时可以利用 GPU 加速,从而减少 CPU 的负担。 ```css .element { will-change: transform; animation: wave-animation1 15s ease-in-out infinite; } @keyframes wave-animation { 0% { transform: translateX(-55%) rotate(5deg); } 50% { transform: translateX(-55%) rotate(10deg); } 100% { transform: translateX(-55%) rotate(5deg); } } ``` ### 减少重排和重绘 重排和重绘会消耗大量的 CPU 资源。在动画过程中,尽量避免修改会触发重排的属性,如 `width`、`height`、`margin` 等。由于当前动画仅使用了 `transform` 属性,已经在一定程度上避免了重排,但仍可通过 `will-change` 进一步优化。 ### 优化动画帧数 如果动画帧数过多,CPU 需要处理更多的计算。可以适当减少关键帧的数量,或者调整动画的 `timing-function` 来让动画过渡更加平滑,减少不必要的计算。当前动画的关键帧已经比较简洁,可根据实际情况进一步调整 `timing-function`。 ### 暂停不必要的动画 如果动画在某些情况下不需要运行,可以通过 JavaScript 暂停动画,减少 CPU 占用。 ```javascript // HTML 中添加一个暂停按钮 <button class="pause-btn">暂停动画</button> // CSS 中添加一个暂停类 .paused { animation-play-state: paused; } // JavaScript 代码 document.querySelector('.pause-btn').addEventListener('click', function() { document.querySelector('.element').classList.toggle('paused'); }); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值