首页 > 编程语言 >python 3.12.0 perf 试用

python 3.12.0 perf 试用

时间:2023-10-07 12:33:06浏览次数:36  
标签:perf python app py profiles 3.12

python 3.12.0 的发布,官方支持了基于perf 的调用链分析,基于容器搞了一个简单的环境测试下

环境准备

包含了包含perf 的python 基础镜像,以及一个使用flask 的web 服务, 使用flamescope 的可视化页面分析

  • docker-compose 文件
version: '3'
services:
  flamescope:
    image: dalongrong/flamescope
    ports:
      - "9080:5000"
    volumes:
      - "./profiles:/profiles"
  app:
    build:
      context: ./
      dockerfile: Dockerfile-app
    privileged: true
    environment:
      - PYTHONPERFSUPPORT=1
    volumes:
      - ./app.py:/app/app.py
      - ./profiles:/profiles
    ports:
      - 3000:3000
    cap_add:
      - ALL
  perf-base:
    profiles:
      - perf
    build: .
    image: dalongrong/python:3.12.0-perf
  • dockerfile 说明
    基础镜像
 
FROM python:3.12.0
RUN apt update && apt-get install  -y linux-perf  procps && apt-get clean

Dockerfile-app app

FROM  dalongrong/python:3.12.0-perf
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
COPY app.py /app/app.py
ENTRYPOINT [ "flask", "--app", "app","run", "--host", "0.0.0.0", "--port", "3000" ]

app.py

from flask import Flask
 
app = Flask(__name__)
 
@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

体验

  • 注意需要先构建基础镜像
  • 启动
docker-compose up -d
  • perf 采样数据
    容器kernel 配置
 
sh -c " echo 0 > /proc/sys/kernel/kptr_restrict"
sh -c " echo 0 > /proc/sys/kernel/perf_event_paranoid"
perf record -ag -F 999p -p 1
perf script --header > /profiles/myappperf.perf
  • flamescope 查看

从效果上来看,似乎并不是很好

 

说明

目前python 对于perf 的支持是以linux 为主的,同时从体验上来说不是很好

参考资料

https://github.com/pyenv/pyenv
https://pythoninsider.blogspot.com/2023/10/python-3120-final-now-available.html

标签:perf,python,app,py,profiles,3.12
From: https://www.cnblogs.com/rongfengliang/p/17746007.html

相关文章

  • AIGC革新,将文字或者LOGO融入AI视频基于PIKA-labs(Python3.10)
    很多平台都会禁止用户使用带有网址或者二维码的头像以及文章配图,这样可以有效的防止用户的一些“导流”行为。当然,头像、文章或者视频现在都是AI来审,毕竟现在人工的成本实在太高,但是如果我们把文字元素直接融入图像或者视频之中,如此一来,AI也会很难识别出一些“导流”的元素。本次......
  • Python简易HTTP文件服务器
    我超怕的-HTTPsimplefileserverusePython-https://www.cnblogs.com/iAmSoScArEd/p/17745959.htmlHowtouse安装依赖:pip3installflask保存到文本simple_file_server.py后运行:python3simple_file_server.py浏览器访问:http://ip:9999CodefromflaskimportFlask,......
  • python TCP Server
    pythonTCPServerhttps://blog.csdn.net/weixin_45707610/article/details/131511896 下面的代码,要先关闭防火墙,然后再启动fromsocketserverimportBaseRequestHandler,TCPServerclassEchoHandler(BaseRequestHandler):defhandle(self):print('Got......
  • python+playwright 简单使用
    启动浏览器并打开百度页面安装后,您可以在Python脚本中使用Playwright,并启动3种浏览器中的任何一种(chromium,firefox和webkit)。playwright执行默认运行的浏览器是chromium1、同步方式启动浏览器2、异步方式启动浏览器 ......
  • python+playwright 环境准备
    前言2020年微软开源一个UI自动化测试工具Playwright,与selenium一样,入门简单,支持多语言,所以playwright开始被更多人注意到了,它甚至比selenium更好用更强大。playwright的优势跨浏览器和平台跨浏览器。Playwright支持所有现代渲染引擎,包括Chromium、WebKit和Firefox。......
  • Python TCP socket
    Python TCPsocketsocket.listen(n)简单来说,这里的nt表示socket的”排队个数“一般情况下,一个进程只有一个主线程(也就是单线程),那么socket允许的最大连接数为:n+1如果服务器是多线程,比如上面的代码例子是开了2个线程,那么socket允许的最大连接数就是:n+2换句话说:排队的......
  • 【python笔记】虚拟环境
    1.虚拟环境的建立python-mvenv<虚拟环境名>#例如:python-mvenvmy_venv2.虚拟环境的激活与去激活激活cd到虚拟环境文件夹下的Scripts,在终端执行activate去激活cd到虚拟环境文件夹下的Scripts,在终端执行deactivate.bat3.在虚拟环境中下载依赖python-mpipin......
  • Mojo帮助Python 的性能提升了近 250 倍
    导读AydynTairov是一名开源作者,也是Meta前工程师,他此前将GitHub上火热的纯C语言实现的llama2.c项目移植到了Python——llama2.py。近期 Mojo编程语言正式开放下载,并且声称比Python快68000倍。于是 AydynTairov马不停蹄地就开始将 llama2.py 移植到......
  • 根据以下代码所生成的数据 请使用python 机器学习 研究不同宽度,厚度,重量,车间温度,
    #对分类变量进行独热编码data=pd.get_dummies(data,columns=['Annealing_Type','Cooling_Type'])#划分训练集和测试集fromsklearn.model_selectionimporttrain_test_splitX=data.drop(['Material_ID','Measurement_Time','Tempera......
  • Python实现抓取的方法
    在进行网络爬虫、数据采集或访问受限网站时,使用代理IP可以帮助我们规避IP封禁和请求频率限制的问题。本文将为大家分享如何使用Python抓取IP的方法,以便在应用程序中使用。一、选择IP网站在开始之前,我们首先需要选择一个可靠的IP网站。抓取代理IP下面是一个示例代码,演示了如何使......