电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python一些性能分析的技巧

瀏覽:33日期:2022-07-12 18:36:55

當我們開始精通編程語言時,我們不僅希望實現最終目標,而且希望使我們的程序高效。

在這個教程中,我們將學習一些Ipython的命令,這些命令可以幫助我們對Python代碼進行時間分析。

注意,在本教程中,我建議使用Anaconda。

1.分析一行代碼

要檢查一行python代碼的執行時間,請使用 %timeit 。下面是一個簡單的例子來了解它的工作原理:

#### magics命令%timeit的簡單用法%timeit [num for num in range(20)]#### 輸出1.08 µs ± 43 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

主要注意事項:

在要分析的代碼行之前使用%timeit 它返回代碼運行的平均值和標準偏差。在上面的示例中,執行了7次,每次執行對該代碼循環100萬次(默認行為)。這需要平均1.08微秒和43納秒的標準偏差。 在調用magic命令時,可以自定義運行和循環的數量。示例如下:

#### 在%timeit magic命令中自定義運行和循環數%timeit -r5 -n100 [num for num in range(20)]1.01 µs ± 5.75 ns per loop (mean ± std. dev. of 5 runs, 100 loops each)

使用命令選項-r和-n,分別表示執行次數和循環次數,我們將時間配置文件操作定制為執行5次和循環100次。

2.分析多行代碼

本節向前邁進了一步,并解釋了如何分析完整的代碼塊。通過對%timeit magic命令進行一個小的修改,將單百分比(%)替換為雙百分比(%%),就可以分析一個完整的代碼塊。以下為示例演示,供參考:

#### 使用timeblock%%代碼分析%%timeit -r5 -n1000for i in range(10): n = i**2 m = i**3 o = abs(i) #### 輸出10.5 µs ± 226 ns per loop (mean ± std. dev. of 5 runs, 1000 loops each)

可以觀察到for循環的平均執行時間為10.5微秒。請注意,命令選項-r和-n分別用于控制執行次數和循環次數。

3.代碼塊中的每一行代碼進行時間分析

到目前為止,我們只在分析一行代碼或代碼塊時查看摘要統計信息。如果我們想評估代碼塊中每一行代碼的性能呢?使用 Line_profiler 。

Line_profiler包可用于對任何函數執行逐行分析。要使用line_profiler軟件包,請執行以下步驟:

安裝— Line_profiler 包可以通過簡單的調用pip或conda Install來安裝。如果使用的是針對Python的anaconda發行版,建議使用conda安裝

#### 安裝line_profiler軟件包conda install line_profiler

加載擴展—一旦安裝,你可以使用IPython來加載line_profiler:

#### 加載line_profiler的Ipython擴展%load_ext line_profiler

時間分析函數—加載后,使用以下語法對任何預定義函數進行時間分析

%lprun -f function_name_only function_call_with_arguments

語法細節:

對line_profiler的調用以關鍵字%lprun開始,后跟命令選項-f 命令選項之后是函數名,然后是函數調用

在本練習中,我們將定義一個接受高度(以米為單位)和重量(以磅為單位)列表的函數,并將其分別轉換為厘米和千克。

#### 定義函數def conversion(ht_mtrs, wt_lbs ): ht_cms = [ht*100 for ht in ht_mtrs] wt_kgs = [wt*.4535 for wt in wt_lbs] #### 定義高度和重量列表:ht = [5,5,4,7,6]wt = [108, 120, 110, 98]#### 使用line_profiler分析函數%lprun -f conversion conversion(ht,wt)---------------------------------------------------------------#### 輸出Total time: 1.46e-05 sFile: <ipython-input-13-41e195af43a9>Function: conversion at line 2Line # Hits Time Per Hit % Time Line Contents============================================================== 2 1 105.0 105.0 71.9 ht_cms = [ht*100 for ht in ht_mtrs] 3 1 41.0 41.0 28.1 wt_kgs = [wt*.4535 for wt in wt_lbs]

輸出詳細信息:

以14.6微秒為單位(參考第一行輸出)

生成的表有6列:

第1列(行#)—代碼的行號(請注意,第#1行是故意從輸出中省略的,因為它只是函數定義語句) 第2列(命中)—調用該行的次數 第3列(時間)—在代碼行上花費的時間單位數(每個時間單位為14.6微秒) 第4列(每次命中平均時間)—第3列除以第2列 第5列(%Time)—在所花費的總時間中,花在特定代碼行上的時間百分比是多少 第6列(內容)—代碼行的內容

你可以清楚地注意到,高度從米到厘米的轉換幾乎占了總時間的72%。

結束語

利用每一行代碼的執行時間,我們可以部署策略來提高代碼的效率。在接下來的3個教程中,我們將分享一些最佳實踐來幫助你提高代碼的效率。

我希望這篇教程能提供幫助,你能學到一些新東西。

以上就是python一些性能分析的技巧的詳細內容,更多關于python 性能分析的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 福兰德PVC地板|PVC塑胶地板|PVC运动地板|PVC商用地板-中国弹性地板系统专业解决方案领先供应商! 福建成考网-福建成人高考网 | 耐火砖厂家,异形耐火砖-山东瑞耐耐火材料厂 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | C形臂_动态平板DR_动态平板胃肠机生产厂家制造商-普爱医疗 | 鑫达滑石-辽宁鑫达滑石集团| 金属切削液-脱水防锈油-电火花机油-抗磨液压油-深圳市雨辰宏业科技发展有限公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 户外健身路径_小区健身器材_室外健身器材厂家_价格-浩然体育 | 广州迈驰新GMP兽药包装机首页_药品包装机_中药散剂包装机 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 | 亚克隆,RNAi干扰检测,miRNA定量检测-上海基屹生物科技有限公司 | 电机保护器-电动机综合保护器-上海硕吉电器有限公司 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 砖机托板价格|免烧砖托板|空心砖托板厂家_山东宏升砖机托板厂 | 建筑工程资质合作-工程资质加盟分公司-建筑资质加盟 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | 挤塑板-XPS挤塑板-挤塑板设备厂家[襄阳欧格] | 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 联系我们老街华纳娱乐公司官网19989979996(客服) | 淄博不锈钢无缝管,淄博不锈钢管-鑫门物资有限公司 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 烟气在线监测系统_烟气在线监测仪_扬尘检测仪_空气质量监测站「山东风途物联网」 | 机械立体车库租赁_立体停车设备出租_智能停车场厂家_春华起重 | 广东之窗网| 宿松新闻网 宿松网|宿松在线|宿松门户|安徽宿松(直管县)|宿松新闻综合网站|宿松官方新闻发布 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 上海logo设计| 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 软装设计-提供软装装饰和软装配饰及软装陈设的软装设计公司 | 深圳装修_店面装修设计_餐厅设计_装修全包价格-尚泰装饰设计 |