gpt4 book ai didi

delphi - 使用 Chromium Embedded 时如何修复此内存泄漏?

转载 作者:行者123 更新时间:2023-12-03 18:13:50 27 4
gpt4 key购买 nike

Chromium Embedded ( https://code.google.com/p/delphichromiumembedded/ ) 的 GuiDemo 代码泄漏了几个字节的内存。不多,但每次停止应用程序时都从 FastMM 收到该消息非常烦人。我猜泄漏是在 Chromium 界面中。该单元有一个初始化部分:

INITIALIZATION
CefCache := 'cache';
CefRegisterCustomSchemes := CefOnRegisterCustomSchemes;
CefRegisterSchemeHandlerFactory('dcef', '', True, TFileScheme);

日志是这样的:

A memory block has been leaked. The size is: 20

This block was allocated by thread 0x1674, and the stack trace (return addresses) at the time was:
40455E
4050A7
409C1D
405622
4050DC
4F0D7A
406598
406604
40A6C3
4F0E28
764CEE1C [BaseThreadInitThunk]

The block is currently used for an object of class: main$174$ActRec
The allocation number is: 323

--------------------------------2014/10/5 17:11:33--------------------------------
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):
13 - 20 bytes: main$174$ActRec x 1

问题是我不知道 main$174$ActRec 是谁。托管演示的单元确实称为“main.pas”。但是没有其他名为“main”的 var。

最佳答案

main$174$ActRec 与用于支持匿名方法的接口(interface)相关联。因此,这应该可以为您提供有关如何查找泄漏的线索。

如果您包含异常日志记录套件,例如 JCL 的 madExcept、EurekaLog,您将从 FastMM 获得有意义的堆栈跟踪。这也将帮助您找到泄漏的源头。

一旦找到泄漏的内容,就应该可以找到一种方法将其注册为预期泄漏。但是,如果您可以确定泄漏的内容,那么我建议您设法找到一种不泄漏的方法。

我无法帮助您进一步确定泄漏,因为您没有提供更多信息。这个项目有很多demo,不知道你跑的是哪一个。

关于delphi - 使用 Chromium Embedded 时如何修复此内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26204020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com