在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python性能分析的技巧說明

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-24 15:16 ? 次閱讀

當我們開始精通編程語言時,我們不僅希望實現最終的編程目標,而且還希望可以使我們的程序更高效。在本文中,我們將學習一些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 s
File: <ipython-input-13-41e195af43a9>
Function: conversion at line 2
Line # 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%。結束語利用每一行代碼的執行時間,我們可以部署策略來提高代碼的效率。

希望這篇文章能給你提供幫助,你能學到一些新東西。

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 可編程邏輯
    +關注

    關注

    7

    文章

    523

    瀏覽量

    44461
  • 性能分析
    +關注

    關注

    0

    文章

    10

    瀏覽量

    8107
  • python
    +關注

    關注

    56

    文章

    4822

    瀏覽量

    85798
收藏 人收藏

    評論

    相關推薦

    HarmonyOS NEXT 原生應用/元服務-性能分析基礎耗時分析Time分析

    一、 函數耗時分析及優化 開發應用或元服務過程中,如果遇到卡頓、加載耗時等性能問題,開發者通常會關注相關函數執行的耗時情況。DevEco Profiler提供的Time場景分析任務,可在應用/元服務
    發表于 02-25 14:31

    如何將python文件導入到ROS系統中

    本文通過使用myCobot機械臂進行QR碼視覺追蹤的實踐案例分析,介紹如何將 python 文件導入到 ROS 系統中。
    的頭像 發表于 02-11 11:08 ?552次閱讀
    如何將<b class='flag-5'>python</b>文件導入到ROS系統中

    功率分析儀使用說明

    功率分析儀的使用說明主要包括安裝、設置、測量及數據分析等步驟,以下是詳細的使用指南:
    的頭像 發表于 01-28 14:55 ?590次閱讀

    Python Connector for InterBase連接解決方案

    ,以對存儲的數據執行創建、讀取、更新和刪除操作。該解決方案完全符合 Python DB API 2.0 規范,并作為 Windows、macOS 和 Linux 的 wheel 包分發。 特征 高性能
    的頭像 發表于 01-22 14:34 ?292次閱讀

    使用Python實現xgboost教程

    使用Python實現XGBoost模型通常涉及以下幾個步驟:數據準備、模型訓練、模型評估和模型預測。以下是一個詳細的教程,指導你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發表于 01-19 11:21 ?948次閱讀

    華為云 Flexus X 實例下的場景體驗——小企業使用 Python 語言——超迅速搭建簡單公網 API 接口服務

    ,希望本文可以對小企業來說有一定的幫助作用。 目錄 前言 環境說明 連接并安裝 Python 環境 Python Web 接口編碼 上傳 WebAPI 接口代碼 安裝 flask
    的頭像 發表于 12-27 13:46 ?367次閱讀
    華為云 Flexus X 實例下的場景體驗——小企業使用 <b class='flag-5'>Python</b> 語言——超迅速搭建簡單公網 API 接口服務

    對比Python與Java編程語言

    使得編寫代碼更加靈活,但也可能導致運行時錯誤。 Java 語法相對冗長,需要顯式聲明變量類型,增加了代碼的可讀性和安全性。 靜態類型系統在編譯時進行類型檢查,減少了運行時錯誤。 二、性能 Python 解釋型語言,運行速度通常比Java慢,但對于許多應用場景
    的頭像 發表于 11-15 09:31 ?789次閱讀

    使用Python進行圖像處理

    下面是一個關于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發表于 11-07 10:14 ?473次閱讀
    使用<b class='flag-5'>Python</b>進行圖像處理

    單片機STM32可以用Python寫嗎?可以的開發板有哪些?

    近年來,隨著嵌入式技術的發展,Python語言逐漸被引入到單片機開發中,尤其是一些高性能的單片機上。這一趨勢給開發者帶來了極大的便利,尤其是在快速原型設計和實驗中。本文將詳細探討STM32單片機是否
    的頭像 發表于 09-05 08:00 ?6596次閱讀
    單片機STM32可以用<b class='flag-5'>Python</b>寫嗎?可以的開發板有哪些?

    pytorch和python的關系是什么

    在當今的人工智能領域,Python已經成為了最受歡迎的編程語言之一。Python的易學易用、豐富的庫和框架以及強大的社區支持,使其成為了數據科學、機器學習和深度學習等領域的首選語言。而在深度學習領域
    的頭像 發表于 08-01 15:27 ?2925次閱讀

    Python建模算法與應用

    Python作為一種功能強大、免費、開源且面向對象的編程語言,在科學計算、數學建模、數據分析等領域展現出了卓越的性能。其簡潔的語法、對動態輸入的支持以及解釋性語言的本質,使得Python
    的頭像 發表于 07-24 10:41 ?944次閱讀

    Python在AI中的應用實例

    Python在人工智能(AI)領域的應用極為廣泛且深入,從基礎的數據處理、模型訓練到高級的應用部署,Python都扮演著至關重要的角色。以下將詳細探討Python在AI中的幾個關鍵應用實例,包括機器學習、深度學習、自然語言處理、
    的頭像 發表于 07-19 17:16 ?2065次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發表于 07-16 10:38 ?1770次閱讀

    網絡爬蟲,Python和數據分析

    電子發燒友網站提供《網絡爬蟲,Python和數據分析.pdf》資料免費下載
    發表于 07-13 09:27 ?2次下載

    用pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?1205次閱讀
    主站蜘蛛池模板: 国产精品二区三区免费播放心 | 五月天丁香婷婷开心激情五月 | 欧美色图 亚洲 | 91大神视频网站 | 免费看欧美一级特黄a大片一 | 日本xxwwxxww视频免费丝袜 | 操她射她| 四虎影视最新网址 | 国产人成午夜免费噼啪视频 | 国产婷婷色一区二区三区 | 天天操人人| 99久久99久久精品国产 | 天天摸天天碰色综合网 | 亚洲男人的性天堂 | 高清欧美色欧美综合网站 | 黄色永久网站 | 午夜在线影院 | 激情综合色综合啪啪开心 | 成人最新午夜免费视频 | 亚洲最大成人综合网 | 日本韩国三级在线 | 四虎新网址 | 国产亚洲一区二区三区在线 | 午夜一级黄色片 | 唐人社电亚洲一区二区三区 | 一级待一黄aaa大片在线还看 | 啪啪网站免费看 | 经典三级影院 | 午夜狠狠操 | 亚洲国产成人精品不卡青青草原 | 久久噜国产精品拍拍拍拍 | 波多野结衣50连精喷在线 | 久久综合97色综合网 | 免费大片黄在线观看日本 | 97人人做人人添人人爱 | 亚洲精品卡1卡二卡3卡四卡 | 天天搞夜夜操 | www在线视频 | 第四色亚洲色图 | 日韩一卡2卡三卡4卡无卡网站 | 久久精品亚洲精品国产欧美 |