当前位置: 技术问答>linux和unix
linux下用gsoap,内存增长
来源: 互联网 发布时间:2016-05-13
本文导语: 在linux下用gsoap访问webservice res=SoapBind.ns1__query(strToken,strResult); //类似的webservice接口,得到结果在string strResult中 ns1_query是gsoap自动生成的C接口函数 在循环 while(1) { res=SoapBind.ns1__query(strToken,strResult); } 通过死循环...
在linux下用gsoap访问webservice
res=SoapBind.ns1__query(strToken,strResult); //类似的webservice接口,得到结果在string strResult中
ns1_query是gsoap自动生成的C接口函数
在循环
while(1)
{
res=SoapBind.ns1__query(strToken,strResult);
}
通过死循环不断访问webservice,程序都很正常,访问得到的结果都是正确的,但是发现内存使用率不断增长,而且确实是由于
SoapBind.ns1__query(strToken,strResult);
访问webservice造成的,我现在的猜想是用gsoap访问webservice的时候,函数内有申请内存将结果缓存下,每次循环结束内存就增长而且增长量相对固定
问下,有什么办法来解决内存增长,怕内存泄露
res=SoapBind.ns1__query(strToken,strResult); //类似的webservice接口,得到结果在string strResult中
ns1_query是gsoap自动生成的C接口函数
在循环
while(1)
{
res=SoapBind.ns1__query(strToken,strResult);
}
通过死循环不断访问webservice,程序都很正常,访问得到的结果都是正确的,但是发现内存使用率不断增长,而且确实是由于
SoapBind.ns1__query(strToken,strResult);
访问webservice造成的,我现在的猜想是用gsoap访问webservice的时候,函数内有申请内存将结果缓存下,每次循环结束内存就增长而且增长量相对固定
问下,有什么办法来解决内存增长,怕内存泄露
|
gsoap 缓存数组最大值 100,000,达到最大后会自动清理缓冲区
#ifndef SOAP_MAXARRAYSIZE
# define SOAP_MAXARRAYSIZE (100000) /* "trusted" max size of inbound SOAP array for compound array allocation */
#endif
#ifndef SOAP_MAXARRAYSIZE
# define SOAP_MAXARRAYSIZE (100000) /* "trusted" max size of inbound SOAP array for compound array allocation */
#endif