profile python应用程序联机,在浏览器中显示flamegraph

profiler_online的Python项目详细描述


## 项目名

`profiler_online`

### 介绍:
用来解析查找python程序可能存在的各方面性能或者奇葩问题的工具,通过web访问访问可以直接拿到火焰吐.

Will Add Future:

* 加入内存的相关信息
* 查询时间范围

### 安装:

**pypi:**

```
pip install profiler_online
```

**源码安装:**

```
git clone https://github.com/rfyiamcool/profiler_online.git
cd profiler_online
python setup.py install
```


### 用法:

这边已经封装好了,你需要做的只是把性能分析模块引入到你的应用里面.

```
from profiler_online import run_profiler
run_profiler()
```

### 测试:

打开浏览器 http://127.0.0.1:8080 这样就可以显示正在运行服务的性能火焰图了.

![image](https://github.com/rfyiamcool/profiler_online/raw/master/img/demo.png)

### 问题:

下面是以前创建火焰图的方法.

```
python test.py
curl "127.0.0.1:8080" | profiler_online/tools/flamegraph.pl > flame.html
```

改进的方法:
```
直接浏览器打开,地址栏 --> 127.0.0.1:8080
```

在开发过程中,遇到了python系统调用时不能正常捕获输出. 现在已经改为临时文件的方式.
```
cmdstr = './profiler_online/tools/flamegraph.pl'
p = subprocess.Popen(cmdstr, stdin = subprocess.PIPE, stderr = subprocess.PIPE, shell = True)
p.stdin.write(stats)
p.stdin.flush()
try:
if p.stderr:
stats = p.stderr.read()
p.stderr.flush()
if p.stdout:
stats = p.stdout.read()
except Exception, e:
print e,Exception
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用ApacheCXF和Eclipse的web服务中的java JNI问题   java如何在模式中正确声明扩展?   java Mapstruct从源对象的一组字段中准备一个列表,并将其设置为目标对象   Java:Infinite循环hasnetint()   面向对象Java装饰图案比萨面层   oop Java将常用方法放入超类   Java程序不断崩溃   使用扫描仪写入文本文件时出现java异常错误   java如何打印没有尾随逗号的地图?   使用java在中缀到后缀应用程序中获得错误输出   Java正则表达式拆分运算符的数学表达式,不包括括号中的运算符   java如何从KeyClope获取用户详细信息(不是登录用户,而是通过id获取任何用户)   java如何通过选择微调器启用或禁用editText   java jasypt有多安全?   java上传图像失败   java JDBC批量更新有什么帮助?   java如何在添加新视频文件时获取通知   java将值Bean传递给类,然后将类传递给JSP   java Primefaces Datatable在触发操作时提供空指针异常   Java:在可调整大小的组件中调整旋转形状的大小