日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久综合91 | 欧美成人生活片 | 久久精品www | 国产成人免费看一级大黄 | 欧美另类在线观看 | 国产精品极品 | 少妇又色又紧又爽又刺激视频 | 激情五月婷婷小说 | 国产亚洲精品电影 | 黄色精品在线 | 亚洲精品欧洲 | 欧美精产国品一二三区 | free性护士vidos猛交 | 青娱乐97| 欧洲成人在线视频 | 又大又粗又爽18禁免费看 | xxxxxx国产| 日韩国产三级 | 瑟瑟久久 | 99久久人妻无码中文字幕系列 | 午夜影院91 | 日韩黄网站 | 人妻色综合网站 | 日韩女女同性aa女同 | 亚洲丁香花色 | 无码精品在线视频 | 丁香婷婷一区二区三区 | 一区二区自拍 | 日韩精品高清在线观看 | 玩弄人妻少妇500系列 | 日本黄色免费视频 | 干日本少妇首页 | 不卡网av| 先锋影音一区二区 | 国产丝袜视频在线观看 | 色多多在线看 | 国产精品夜夜躁视频 | 韩国成人免费视频 | 亚洲一级影片 | 91精品黄色 | 91成人免费看 | 成年人午夜免费视频 | 精品国产鲁一鲁一区二区三区 | 五月婷婷激情小说 | 老司机一区 | 人av在线 | 五月婷婷激情综合网 | 豆花免费跳转入口官网 | 精品人妻一区二区三区日产 | 中国性xxx | 成人国产在线观看 | 91在线看| 伊人久久在线 | 日本va在线| 精品国产欧美 | 亚洲无毛视频 | 凹凸国产熟女精品视频 | 国产av电影一区二区三区 | 大奶毛片| 黄色av播放 | 丁香婷婷网| 男人操女人免费 | 黑白配av| 黄色一大片 | 打开免费观看视频在线 | 1024亚洲天堂| 亚洲精品第一页 | 午夜插插插 | 色校园| 久久在线一区二区 | 91av福利| 日韩国产在线 | 粉嫩av四季av绯色av | 超碰导航| 久久九九久精品国产免费直播 | 欧美日韩精品综合 | 欧美午夜在线观看 | 最近中文字幕在线观看 | 天天综合网在线观看 | 国产天堂资源 | 亚洲AV综合色区国产精品天天 | 国产在线视频二区 | 98精品国产 | 香蕉视频色版 | 亚洲精品在线免费观看视频 | 国产日本一区二区 | 日韩黄色短片 | 无码少妇一区二区三区芒果 | 国产99色 | 在线视频综合网 | 色呦呦在线观看视频 | 徐锦江一级淫片免费看 | 亚洲xxxxx| 永久毛片| 天天爽天天色 | 国产噜噜噜噜噜久久久久久久久 | 一区二区三区免费 | 夜夜骚av | 日本一区二区视频免费 |