您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

返回输出之前,Python子进程在后台运行

返回输出之前,Python子进程在后台运行

首先:我建议不要perf在您的python进程中进行调用(如您在下面的任务的复杂性中所看到的),而是使用从命令行进行:

sudo perf stat -- python test.py

如果您 想从python中调用perf,那么您将面临一些棘手的问题:

这意味着您将最终获得此python程序:

import subprocess
import os
import signal
import time

perf = subprocess.Popen(['perf', 'stat',  '-p', str(os.getpid())], stderr=subprocess.PIPE)

# <-- your code goes here

if os.fork() == 0:
    # child
    time.sleep(1)  # wait until parent runs `stderr.read()`
    perf.send_signal(signal.SIGINT)
    exit(0)

# parent
print("got perf stats>>{}<<".format(perf.stderr.read().decode("utf-8")))

time.sleep(1)位是丑陋的,它做什么它,它会,但我想它会做的伎俩为99%的情况。它几乎对perf数据没有影响,唯一的影响是对“总运行时间”(*xx seconds time elapsed

python 2022/1/1 18:50:45 有367人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶