日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

python工具——Py-Spy

發布時間:2024/1/3 综合教程 42 生活家
生活随笔 收集整理的這篇文章主要介紹了 python工具——Py-Spy 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Py-Spy是Python程序的抽樣分析器,可視化查看Python程序在哪些地方花了更多時間

1.安裝

pip  install py-spy

驗證安裝是否成功

py-spy -h
py-spy 0.3.3
Sampling profiler for Python programs

USAGE:
    py-spy <SUBCOMMAND>

OPTIONS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    record    Records stack trace information to a flamegraph, speedscope or
              raw file
    top       Displays a top like view of functions consuming CPU
    dump      Dumps stack traces for a target program to stdout
    help      Prints this message or the help of the given subcommand(s)

從上面看到有三個子命令

  record:生成火焰圖

  top:實時查看每個函數運行時間并統計

  dump:顯示每個python線程的當前調用堆棧

2.示例

main.py

from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()

class Item(BaseModel):
    name: str
    price: float
    is_offer: bool = None

@app.get("/")
def home():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}


@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

啟動

uvicorn main:app --host 0.0.0.0

(1)record

生成火焰圖

 py-spy record -o profile.svg --pid 11004

在Ubuntu下會出現

  Permission Denied: Try running again with elevated permissions by going 'sudo env "PATH=$PATH" !!'

執行

 sudo env "PATH=$PATH" py-spy record -o profile.svg --pid 11004

使用ab壓力測試

ab -n 10000 -c 100 http://localhost:8000/

生成的火焰圖

通過生成火焰圖分析程序瓶頸,看圖中最下方哪個峰頂是平的,程序的性能問題就可以從那入手去解決

(2)top

顯示了在python程序中花費最多時間的功能的實時視圖

py-spy top --pid 11004

說明:  

  參數

按%Own排序:當前在該函數中花費的時間的百分比
按%Total排序:函數及其子級中當前的時間百分比
按OwnTime排序:函數中花費的總時間
按TotalTime排序:該函數及其子項花費的總時間

  通過OwnTime可以比較直接的看出程序運行中,所占比消耗時間最多的函數

https://github.com/benfred/py-spy

(3)dump

顯示每個線程的調用棧

$ sudo env "PATH=$PATH" py-spy dump --pid 1615
Process 1615: /usr/bin/python /home/baby/.local/bin/uvicorn main:app --host 0.0.0.0
Python v3.7.9 (/usr/bin/python3.7)

Thread 1615 (idle): "MainThread"
    select (selectors.py:468)
    _run_once (asyncio/base_events.py:1750)
    run_forever (asyncio/base_events.py:541)
    run_until_complete (asyncio/base_events.py:574)
    run (uvicorn/server.py:48)
    run (uvicorn/main.py:386)
    main (uvicorn/main.py:362)
    invoke (click/core.py:610)
    invoke (click/core.py:1066)
    main (click/core.py:782)
    __call__ (click/core.py:829)
    <module> (uvicorn:8)
Thread 1624 (idle): "ThreadPoolExecutor-0_0"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 1625 (idle): "ThreadPoolExecutor-0_1"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 1626 (idle): "ThreadPoolExecutor-0_2"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 1710 (idle): "ThreadPoolExecutor-0_3"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)
Thread 1711 (idle): "ThreadPoolExecutor-0_4"
    _worker (concurrent/futures/thread.py:78)
    run (threading.py:870)
    _bootstrap_inner (threading.py:926)
    _bootstrap (threading.py:890)

注:

  如果在windows下,使用dump,會報錯

>py-spy dump --pid 4644
Error: 函數不正確。 (os error 1)

總結

以上是生活随笔為你收集整理的python工具——Py-Spy的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色男女网站 | 99国产精品免费视频 | 久久久一二三 | 亚洲激情自拍 | 插插插av | 日韩少妇内射免费播放18禁裸乳 | 翔田千里x88aⅴ | 亚洲a级在线观看 | 成人激情四射 | 亚洲日本色 | 亚洲理论中文字幕 | 久久久免费毛片 | 另类视频在线观看+1080p | 亚洲爆乳无码一区二区三区 | 在线观看免费视频国产 | 成人黄色电影在线 | 草久在线观看 | 依人99| a级黄色在线观看 | 性欧美成人播放77777 | 一区二区色 | 欧美视频四区 | 丰满少妇被猛烈进入一区二区 | 欧美一区二区不卡视频 | 91在线精品一区二区三区 | 国产精品久久久久久久专区 | 欧美黑粗硬 | 成人精品视频在线观看 | 欧美xxxxxx片免费播放软件 | 亚洲一区二区色 | 香蕉国产在线视频 | 亚洲乱码一区二区三区 | 夜夜骚av | 亚洲第一视频区 | 日韩成人免费电影 | 99色这里只有精品 | 久久国产一级片 | 国产一级影片 | 狠狠cao日日穞夜夜穞av | 亚洲精品鲁一鲁一区二区三区 | h片在线观看免费 | 亚洲区欧美区 | 欧美视频综合 | 午夜视频在线观看免费视频 | 久久午夜国产精品 | 中文字幕日韩视频 | 欧美交换配乱吟粗大25p | 国产性―交―乱―色―情人 | 亚洲欧美在线视频免费 | 成人欧美在线视频 | 伊人视屏 | 欧美亚洲自拍偷拍 | 亚洲日本精品一区 | www视频在线观看免费 | 青青视频免费 | 狠狠躁夜夜躁人 | 亚洲欧美成人 | 无遮挡边吃摸边吃奶边做 | 樱空桃在线 | 亚洲日日干| 国产精品国产三级国产传播 | 91叼嘿视频 | 羞羞答答一区 | 亚洲大片| 色老头在线一区二区三区 | 欧美三级一区 | 国产成人免费av一区二区午夜 | 乱视频在线观看 | 免费爱爱视频网站 | 亚洲国产成人精品激情在线 | 丰满少妇一区二区三区视频 | 日韩国产三级 | 欧美阿v | 一本到免费视频 | 合欢视频在线观看 | 欧美三区视频 | 粉嫩av.com| 国产精品xxxx | 国产66页 | 国产1区2区在线观看 | 日本精品一区二区视频 | 亚洲毛片a| 亚洲av无码一区东京热久久 | 国语精品久久 | 亚洲欧美视频在线 | 亚洲www啪成人一区二区麻豆 | 久久久久久国产精品一区 | 少妇裸体挤奶汁奶水视频 | 西西毛片 | av天堂一区二区三区 | 国产av一区不卡 | 69堂在线观看 | 天堂av网站 | 欧美巨大另类极品videosbest | 国产在线看片 | 男女啊啊啊 | 午夜男人天堂 | 美女被男人桶出白浆喷水 | 中国少妇初尝黑人巨大 |