使用dows分析CherryPy应用程序

2024-09-26 18:13:46 发布

您现在位置:Python中文网/ 问答频道 /正文

关于嫁妆的用法我有一个问题。 我基于CherryPy创建了我自己的网站,有一个内存泄漏,但我不知道它在哪里。在搜索了关于我的问题的信息后,我了解到dowser是一个很好的工具,它可以告诉内存泄漏发生在哪里。在

因此,在usage tutorial中,有一些步骤可以帮助将dowser集成到现有的CherryPy应用程序中,但是我不知道在哪里可以看到内存使用的结果?我应该如何使用跟踪和图表变量?在

谢谢!在


Tags: 工具内存信息应用程序用法网站图表步骤
1条回答
网友
1楼 · 发布于 2024-09-26 18:13:46

不,如果您已将dowser应用程序正确安装到您的CherryPy树中,则不应触摸trace和{}。可能是如下所示。运行,等待一分钟,找到泄漏在/dowser上(psst,查看实例计数图表)。在

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import os
import threading
import time

import cherrypy
import dowser


config = {
  'global' : {
    'server.socket_host' : '127.0.0.1',
    'server.socket_port' : 8080,
    'server.thread_pool' : 4
  }
}


class DowserToShow:
  pass


class App:

  issueIsMe = []
  exited    = False
  thread    = None


  def __init__(self):
    self.thread = threading.Thread(target = self.leak)
    self.thread.start()

    cherrypy.engine.subscribe('exit', self.exit)

  def exit(self):
    self.exited = True
    self.thread.join()

  def leak(self):
    while not self.exited:
      for i in range(100):
        self.issueIsMe.append(DowserToShow())
      time.sleep(1)

  @cherrypy.expose
  def index(self):
    return 'Leaked instances, {0}'.format(len(self.issueIsMe))


if __name__ == '__main__':
  cherrypy.tree.mount(dowser.Root(), '/dowser')
  cherrypy.quickstart(App(), '/', config)

相关问题 更多 >

    热门问题