马上注册,结交更多易友,享用更多功能,让你轻松玩转觅风论坛。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本人最近用易语言开发一款小软件,编写完成后发现内存降不下来。经过几天的排查,发现易语言官方自带的XML树,其下的“取属性个数”函数存在内存泄露BUG。
XML文件体积小时,内存泄露并不明显;但是当我用几MB级别甚至更大的XML文件去试时,现象就暴露出来了。
注意:担心一些坛友误认为是“导入”函数导致的,其实不是,XML树结构在退出函数时,析构函数是会自动释放内存的,不需要手动释放。
复现步骤:(XML文件已放在附件)
- .版本 2
- .支持库 EXMLParser
- .子程序 _按钮1_被单击
- .局部变量 i, 整数型
- .计次循环首 (2, i)
- func ()
- .计次循环尾 ()
- .子程序 func, 逻辑型
- .局部变量 xml树, XML树
- .局部变量 i当前error节点属性个数, 整数型
- .局部变量 i, 整数型
- .局部变量 b成功拿到当前error节点的属性, 逻辑型
- .局部变量 iErrors子节点数, 整数型
- .如果 (xml树.导入 (“d:/aaa.xml”))
- .否则
- 返回 (假)
- .如果结束
- .如果 (xml树.取子节点数 (“results/errors”, iErrors子节点数))
- .否则
- 返回 (假)
- .如果结束
- .计次循环首 (iErrors子节点数, i)
- i当前error节点属性个数 = xml树.取属性个数 (“results/errors/@” + 到文本 (i), b成功拿到当前error节点的属性)
- .计次循环尾 ()
- 返回 (真)
复制代码
|
|