使用 heapy 追踪 Django 应用程序中的内存泄漏

2023-11-21

我在这里关注了如何使用 Django 设置 heapy 的优秀帖子:http://www.toofishes.net/blog/using-guppy-debug-django-memory-leaks/

我已经命令 hp.setref() ,现在过了一会儿我还使用 hp.heap() 获取数据:

>>> hp.heap()
Partition of a set of 12075 objects. Total size = 1515496 bytes.
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
     0   4048  34   339656  22    339656  22 str
     1   3112  26   269368  18    609024  40 tuple
     2    171   1   169992  11    779016  51 dict (no owner)
     3   1207  10   144440  10    923456  61 list
     4     49   0   102040   7   1025496  68 dict of module
     5    591   5    66984   4   1092480  72 unicode
     6    498   4    59760   4   1152240  76 function
     7    433   4    51960   3   1204200  79 types.CodeType
     8     57   0    50480   3   1254680  83 type
     9     36   0    31584   2   1286264  85 dict of class

但现在怎么办?我应该从这个输出中理解什么?我应该如何开始追踪这些“str”和“tuple”对象所属的位置?

使用 get_rp,我得到以下输出:

>>> hp.heap().get_rp()
Reference Pattern by <[dict of] class>.
 0: _ --- [-] 12000 (0xd1d340 | 0xd88b50 | 0xf63f00 | __builtin__.Struct | __...
 1: a      [-] 137 dict (no owner): 0x761c30*160, 0x7655d0*1491, 0x781640*9...
 2: aa ---- [-] 45 dict of django.db.models.options.Options: 0xcf3110...
 3: a3       [-] 45 django.db.models.options.Options: 0xcf3110, 0xf0bb10...
 4: a4 ------ [-] 140 dict of django.db.models.related.RelatedObject: 0x10bec...
 5: a5         [-] 140 django.db.models.related.RelatedObject: 0xf14450...
 6: a6 -------- [-] 63 dict of django.db.models.fields.related.ForeignKey: 0x...
 7: a7           [+] 63 django.db.models.fields.related.ForeignKey: 0xf0e690...
 8: a5b ------- [-] 7 dict of django.db.models.fields.related.OneToOneField: ...
 9: a5ba         [+] 7 django.db.models.fields.related.OneToOneField: 0x15447...

现在 Django 正在泄漏内存,这是正确的假设吗?但是那些没有所有者的字典是什么?


我没有任何使用 heapy 的经验,但根据我的经验,Django(和大多数其他 Python 程序)不会泄漏内存,但它们也不会像某些人希望的那样干净地清理内存。

此外,Django 的设置会导致其出于诊断原因而消耗内存。例如,设置 DEBUG=True 可能会导致它保留所有 SQL 查询,因此进程运行的时间越长,使用的内存就越多。

更新:你的问题不在你的Python代码中。看看heapy给你的总结:代表的内存总大小是1.5Mb!当 Python 程序真正泄漏时,最常见的原因是泄漏的 C 扩展。您是否有在 Django 进程下运行的任何 C 扩展?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 heapy 追踪 Django 应用程序中的内存泄漏 的相关文章

  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • 使用C#属性来跟踪函数调用、变量和返回值?

    在Python中 我可以使用装饰器来跟踪函数调用 它的变量和返回值 这是非常容易使用 我只是想知道 C 可以做同样的事情吗 我发现网上有CallTracing Attribute的示例代码 然而 它并没有显示出我预期的结果 C 属性与 py
  • C 编程:seg 错误、printf 和相关的怪癖[重复]

    这个问题在这里已经有答案了 正如许多年轻的程序员所做的那样 我了解到在代码中的不同点插入大量 here1 here2 等打印到控制台语句的有用性 以找出我的程序何时出错 在我的计算机科学学习过程中 这种强力调试技术已经拯救了我很多很多次 然
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 为什么一旦我离开内置的运行服务器,Django 就无法找到我的管理媒体文件?

    当我使用内置的简单服务器时 一切正常 管理界面很漂亮 python manage py runserver 但是 当我尝试使用 wsgi 服务器为我的应用程序提供服务时django core handlers wsgi WSGIHandle
  • 导入错误:没有名为flask.ext.login的模块

    我的flask login 模块有问题 我已经成功安装了flask login模块 另外 从命令提示符我可以轻松运行此脚本 不会出现错误 Python 2 7 r27 82525 Jul 4 2010 07 43 08 MSC v 1500
  • 未知错误:Chrome 无法启动:异常退出

    当我使用 chromedriver 对 Selenium 运行测试时 出现此错误 selenium common exceptions WebDriverException Message unknown error Chrome fail
  • 通过Python连接到Bigquery:ProjectId和DatasetId必须非空

    我编写了以下脚本来通过 SDK 将 Big Query 连接到 Python 如下所示 from google cloud import bigquery client bigquery Client project My First Pr
  • 如何将 GAE 中一种 Kind 中的所有实体复制到另一种 Kind 中,而无需显式调用每个属性

    我们如何使用function clone entity 如中所述在 Python 中复制 Google App Engine 数据存储中的实体 而无需在 编译 时知道属性名称 https stackoverflow com question
  • python 中的“槽包装器”是什么?

    object dict 和其他地方的隐藏方法设置为这样的
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS

随机推荐

  • 打字稿,如何将对象传递给类的构造函数进行实例化

    我有一个从后端 api 获取的数组对象数据 喜欢 name react age 4 name angular age 4 name rxjs age 2 我确定一个class and an interface 像这样 interface I
  • 另一个函数中的 C 函数声明

    谁能向我解释一下这些行 int xyz void extern void abc void 函数定义中的函数声明 或者我误解了什么 是的 你的猜测是正确的 它声明了该函数的存在abc 因此可以在其中引用xyz 请注意 extern是不必要的
  • 你能在.NET MVC模板中使用bootstrap 4制作Visual Studio脚手架等吗?

    当您在 vs17 中创建新项目时 c 中的基本 mvc net Web 应用程序 它附带了 bootstrap 3 这意味着所有的脚手架页面和设计都是错误的 因为它们修改了列大小调整系统 有没有什么方法可以更新 VS 以便在将项目更新为 b
  • int((0.1+0.7)*10) = 7 在多种语言中。如何防止这种情况发生?

    最近我遇到了多种语言的错误 功能 我对它是如何引起的有非常基本的了解 并且我想要一些详细的解释 但是当我想到这些年来我必须犯的所有错误时 问题是我如何确定 嘿 这可能会导致一个可笑的错误 我最好使用任意精度函数 还有哪些其他语言有这个错误
  • GitHub:企业接收后挂钩

    有谁知道 GitHub Enterprise 中是否有一种机制来设置一个通用的接收后挂钩 该挂钩将适用于所有存储库 包括创建后的新存储库 我正在尝试开发一个到辅助系统的链接 该系统希望收到所有存储库的所有推送的通知 并且需要为每个新存储库进
  • wicket @SpringBean 无法创建 bean

    我有一个关于 Eclipse Wicket Spring Hibernate 的项目 一切正常 除了 当我尝试时 public class SortableContactDataProvider extends SortableDataPr
  • 如何检查两个布尔值是否相等?

    我需要一个可以在 junit 中调用的方法assertTrue 方法比较两个布尔值以检查它们是否相等 并返回一个布尔值 例如 这样的事情 boolean isEqual Boolean equals bool1 bool2 如果它们不相等则
  • 将鼠标悬停在按钮上时文本颜色发生变化

    我正在尝试更改悬停时按钮内文本的颜色 我可以使按钮本身改变颜色 但我希望按钮文本也改变颜色 这是我当前的CSS button input button a button input type submit background 2e77ae
  • 通过 CLI 运行 Codeigniter 会输出网站根目录而不是预期结果

    我正在跟进本教程通过 CLI 运行 Codeigniter 我已经做了他们所做的一切 复制并粘贴 现在 当我运行此命令时 除了输出网站索引内容之外 它不会执行预期的操作 cd Users MyUsername Sites code php
  • 调用 ruby​​ 方法而不实例化类

    如果我像这样调用 Rails 活动模型方法上的方法 class Foo lt ActiveRecord Base end Foo first 我将取回第一个活动记录 我不必实例化该类 但是如果我创建自己的类并调用方法 则会出现异常 clas
  • Xcode 6 删除应用程序组

    我需要删除一些App Groups我创建的目的是为了在应用程序和它的 Today 扩展之间共享信息 有谁知道如何删除App Group在功能部分创建Xcode in App Groups 删除应用程序组的步骤如下 登录到苹果开发者使用您的开
  • 奥利奥中未显示通知

    普通通知生成器不会在 Android O 上显示通知 如何在 Android 8 Oreo 上显示通知 是否需要添加任何新代码来在 Android O 上显示通知 在 Android O 中是必须使用渠道与您的通知生成器 下面是示例代码 S
  • 在 powershell 中打开控制台应用程序

    我目前正在开发一个 win32 控制台应用程序 想知道是否有任何方法可以让 Visual Studio 在调试它时在 powershell 而不是 cmd exe 中打开它 我真正想要的是一个更好的外壳 我可以在其中复制 粘贴等 而无需单击
  • 如何在下一个 jupyter 单元中重用绘图[重复]

    这个问题在这里已经有答案了 我有一个 jupyter 笔记本 希望在一个单元格中创建一个绘图 然后编写一些 Markdown 来在下一个单元格中进行解释 然后设置限制并在下一个单元格中再次绘图 到目前为止 这是我的代码 matplotlib
  • 单个 Django 项目下的多个站点

    在单个 django 项目下拥有多个站点是否可能且正确 这样 所有站点就会有全局共享的坐在文件 url 文件以及全局共享的 应用程序 并且单个 django 项目下的所有站点都有一个通用的管理界面 每个站点可能有自己的设置 url 和模板
  • 在 VB.NET 中获取 SQL Server 表中的行数

    有 10 行primary student table 当我执行下面的代码时 结果是 1 Dim count As Int16 con Open query SELECT COUNT roll AS rollcount FROM prima
  • 用C代码编写二进制数字系统[重复]

    这个问题在这里已经有答案了 当我们使用0x十六进制数字的前缀 以及0对于八进制数 对于二进制数有什么可以做的吗 我尝试过b后缀 但是GCC不允许 错误 整数常量上的后缀 b 无效 是否可以 标准 C 没有定义二进制常量 不过有一个 GNU
  • 如何获得逻辑回归中 ROC 的最佳截止点作为数字

    我想将逻辑回归中 ROC 的最佳截止点作为数字而不是两条交叉曲线 使用下面的代码 我可以获得显示最佳点的图 但在某些情况下 我只需要该点作为可用于其他计算的数字 以下是代码行 library Epi ROC form IsVIP var1
  • D3:通过鼠标悬停查找图形 y 坐标

    我正在使用 D3 制作交互式面积图 将鼠标悬停在面积图上时 我希望有一个点沿着图表顶部滚动 如下例所示 http hci stanford edu jheer files zoo ex time multiples html 一旦获得鼠标位
  • 使用 heapy 追踪 Django 应用程序中的内存泄漏

    我在这里关注了如何使用 Django 设置 heapy 的优秀帖子 http www toofishes net blog using guppy debug django memory leaks 我已经命令 hp setref 现在过了