This topic created in 3741 days ago, the information mentioned may be changed or developed.
一个很简单的交互。
本地有一个 json 文件。
客户端发送一个字符串,服务器接受,读入 json ,遍历对象查找哪一项包含这个字符串,并把这一项输出。
今天发现内存占用很高, top 查一下发现这个脚本花了 250mb 内存。。而且查询越多次内存越大。
这是怎么回事呢?该如何解决
web.py python2
6 replies • 2016-05-06 13:20:58 +08:00
 |
|
1
YUX May 6, 2016
有没有用 flask 也试一下?
|
 |
|
2
just1 May 6, 2016 via Android
@ YUX 另一个用 tornado 的很正常。 主要是不想重写代码。。
|
 |
|
3
justou May 6, 2016 1
尝试用 memory_profiler 做一下内存分析呢? py 采用的对象缓冲池, 垃圾回收不是立即的, 有些时候会被缓存一段时间. 曾经在多线程中下载文件, 发现如果用 with 语句打开文件写入后, 即使出了 with 的作用域, 被写入的 buffer 也不会被立即释放, 结果内存会飙升, 显式的 open, close 就没问题了
|
 |
|
4
mulog May 6, 2016 1
可以用 objgraph 做做 profile 看一下是什么东西占着内存
|
 |
|
5
SlipStupig May 6, 2016 1
方法有几种: 1.分析占用原因, python 采用分代回收,活的越久的对象越不会被回收,所以看一下 profile 状态 2.不用分析,定时 del 对象和强制 GC ,但是这么做会降低性能
|
 |
|
6
just1 May 6, 2016 via Android
|