导读

[教程] 易语言的XML树的取属性个数存在内存泄露BUG

[复制链接]

微信扫一扫 分享朋友圈

webyew 发表于 昨天 17:56 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多易友,享用更多功能,让你轻松玩转觅风论坛。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本人最近用易语言开发一款小软件,编写完成后发现内存降不下来。经过几天的排查,发现易语言官方自带的XML树,其下的“取属性个数”函数存在内存泄露BUG。
XML文件体积小时,内存泄露并不明显;但是当我用几MB级别甚至更大的XML文件去试时,现象就暴露出来了。
注意:担心一些坛友误认为是“导入”函数导致的,其实不是,XML树结构在退出函数时,析构函数是会自动释放内存的,不需要手动释放。

复现步骤:(XML文件已放在附件)
  1. .版本 2
  2. .支持库 EXMLParser

  3. .子程序 _按钮1_被单击
  4. .局部变量 i, 整数型


  5. .计次循环首 (2, i)
  6.     func ()
  7. .计次循环尾 ()

  8. .子程序 func, 逻辑型
  9. .局部变量 xml树, XML树
  10. .局部变量 i当前error节点属性个数, 整数型
  11. .局部变量 i, 整数型
  12. .局部变量 b成功拿到当前error节点的属性, 逻辑型
  13. .局部变量 iErrors子节点数, 整数型


  14. .如果 (xml树.导入 (“d:/aaa.xml”))

  15. .否则
  16.     返回 (假)
  17. .如果结束

  18. .如果 (xml树.取子节点数 (“results/errors”, iErrors子节点数))

  19. .否则
  20.     返回 (假)
  21. .如果结束

  22. .计次循环首 (iErrors子节点数, i)
  23.     i当前error节点属性个数 = xml树.取属性个数 (“results/errors/@” + 到文本 (i), b成功拿到当前error节点的属性)
  24. .计次循环尾 ()

  25. 返回 (真)
复制代码


游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们:觅风论坛与你快乐分享

收藏本站

用心服务做个非盈利公益编程网站

www.eyyba.com

服务人:觅风论坛

Email:eyyba@foxmail.com

Powered by WWW.EYYBA.COM X3.4© 2001-2023 Inc.   版权所有   

觅风论坛  疆ICP备15020893号-1