- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我退出我创建的 THTTPRIO 对象上的应用程序时,出现内存泄漏。
我的网络服务定义如下:
type
TSimpleWebService = class
protected
FHTTPRIO : THTTPRIO;
public
constructor Create(URL : String);
property HTTPRIO : THTTPRIO read FHTTPRIO;
end;
implementation
constructor TSimpleWebService.Create(URL : String);
begin
FHTTPRIO := THTTPRIO.Create(nil);
FHTTPRIO.URL := URL;
end;
我正在测试/创建 Web 服务,如下所示(CustomerCare 是我的 Web 服务接口(interface)):
procedure TfrmMain.Button1Click(Sender: TObject);
var
webservice: customercare;
begin
webservice := GetSimpleCustomerCareService;
webservice := nil;
frmMain.Close;
end;
function TfrmMain.getSimpleCustomerCareService: CustomerCare;
var
webservice: TSimpleWebService;
begin
webservice := TSimpleWebService.Create('http://this.is.a.test');
Result := webservice.HTTPRIO as CustomerCare;
end;
当我单击 Button1 时,我实际上并没有做任何事情,只是创建了 Web 服务,再次将其设置为 nil 并退出应用程序。此时(使用 ReportMemoryLeaksOnShutDown := True),我在 TSimpleWebService 上意外发生了 12 个字节的内存泄漏。
我尝试添加析构函数 Destroy 但它似乎没有被调用。
我错过了什么?
感谢您的投入,一月
哦,是的,我使用的是 XE2 Windows 2003。除了 TSimpleWebservice 上的内存泄漏之外,我还在 TDictionary 对象上遇到内存泄漏,但我不知道该内存泄漏是从哪里来的。当我在 XE4/Windows 7 上编译并运行相同的项目时,我只得到 TSimpleWebservice 内存泄漏。
最佳答案
回答你的第二个问题:
oh yeah, I'm on XE2 Windows 2003. In addition to the memory leak on TSimpleWebservice, I also get a memory leak on a TDictionary object but I have no clue where that one is coming from. When I compile and run the same project on XE4/Windows 7, I only get the TSimpleWebservice memory leak.
wsdllookup.pas存在内存泄漏,将此文件复制到您的项目中并找到这段代码
destructor TWSDLLookup.Destroy;
begin
ClearWSDLLookup;
inherited;
end;
将其更改为:
destructor TWSDLLookup.Destroy;
begin
ClearWSDLLookup;
Flookup.Free; // this was missing!!!!
inherited;
end;
正如您所发现的,这个错误已在较新的 Delphi 版本中得到修复
关于delphi - 简单 HTTPRIO 上的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17975959/
我想HTTPRio组件收到数据后,会解析数据。我这样说是因为在程序离开 AfterExecute 过程之后,需要很长时间才能继续执行下一行代码。 我想要的是清除已经到达AfterExecute过程的数
当我退出我创建的 THTTPRIO 对象上的应用程序时,出现内存泄漏。 我的网络服务定义如下: type TSimpleWebService = class protected FHT
我有一个 https SOAP ,我想忽略证书验证。我在 THTTPRIO.HTTPWebNode 中通过 OnBeforePost 事件做到了这一点: procedure TMySOAP.OnBef
我正在将 Delphi 2007 程序转换为 Delphi XE2,但遇到以下错误消息: Unable to retrieve the URL endpoint for service/port "/
Delphi 10.3 中的 HTTPRIO.HTTPWebNode.OnBeforePost 事件发生了变化。 在 Delphi 10.3 之前,事件处理程序是这样定义的,并且它工作得很好: pro
我很难弄清楚哪里出了问题。 我收到这条消息: Debugger Exception Notification Project Project9.exe raised exception
我有一个 C# web 服务托管在 IIS 中,启用了 Windows 身份验证,我从 Delphi 7 客户端调用它。 当我调用该方法时,我有一个系统登录对话框,我必须输入我的 Windows 用户
我是一名优秀的程序员,十分优秀!