在线观看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

    文章

    524

    瀏覽量

    44597
  • 性能分析
    +關注

    關注

    0

    文章

    10

    瀏覽量

    8128
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86268
收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

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

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

    功率分析儀使用說明

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

    Python Connector for InterBase連接解決方案

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

    使用Python實現xgboost教程

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

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

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

    對比Python與Java編程語言

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

    使用Python進行圖像處理

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

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

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

    pytorch和python的關系是什么

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

    Python建模算法與應用

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

    Python在AI中的應用實例

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

    opencv-python和opencv一樣嗎

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

    網絡爬蟲,Python和數據分析

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

    用pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?1357次閱讀
    主站蜘蛛池模板: 黄色的网站在线观看 | 大象焦伊人久久综合网色视 | 最近视频在线播放免费观看 | 免费视频不卡一区二区三区 | 午夜精品网 | 国产在线高清精品二区色五郎 | 国产真实乱在线更新 | 4虎 影视 免费 | 西西人体大胆高清啪啪欧洲 | 在线观看免费午夜大片 | 又粗又爽又色男女乱淫播放男女 | 羞涩妩媚玉腿呻吟嗯啊销魂迎合 | 九色综合伊人久久富二代 | 91华人在线视频 | 亚洲一区二区三区中文字幕5566 | 性欧美护士18xxxxhd | 免费激情网站 | 三级理论在线 | 免费拍拍视频 | 国产精品美女久久久久网 | 全部在线播放免费毛片 | 国产va精品免费观看 | 激情春色网 | 国产精选经典三级小泽玛利亚 | 在线观看免费观看 | 综合一个色 | 亚洲最大黄色网址 | 久久天天躁夜夜躁狠狠85麻豆 | 国内a级毛片免费··· | 激情五月综合 | 天天干天天操天天碰 | 欧美精品xx | 天天做天天爱夜夜爽毛片毛片 | 天天爱夜夜爽 | 一区二区三区四区五区 | 宅男666在线永久免费观看 | 天堂在线www网亚洲 天堂在线观看 | 免费视频一区二区 | 日韩高清一级 | 99久久精品久久久久久婷婷 | 天天干影视|