hur.cn - 华软网

 热门搜索

如何释放程序吃掉的内存?

  作者:未知    来源:网络    更新时间:2018/10/16
这段代码吃内存严重!

dw_1.object.t_t.x = string(integer(dw_1.object.t_t.x) - 15)
   if long(dw_1.object.t_t.x) <= - long(dw_1.object.t_t.width) then
  dw_1.object.t_t.x = string(dw_1.width)
end if

我用garbagecollect()不管用。

如何控制程序动态释放内存呢?

------华软网友回答------
代码后加上yield()
------华软网友回复------
为什么呢?
------华软网友回复------
怀疑是pb得bug
我已经打了最新的补丁了。pb9.03_8546
------华软网友回复------
yield()是释放cpu吧,能释放内存吗?
------华软网友回复------
这个问题可能无解. 反正我用pb901不会像你说的那样占内存
------华软网友回复------
你的机器是不是装了什么优化软件,我在好多台机器上(不同配置和系统)测试都是吃内存呀。
------华软网友回复------
我测试了6个小时,开始时6558k
6个小时后76648k
6个小时吃了近70mb内存!!!!!
------华软网友回复------
有没有什么对象没destroy?
------华软网友回复------
晕倒,吃得这么历害呀,
------华软网友回复------
看不出来代码会吃内存  可能是其他地方的代码有问题把  

或是把获取属性的语句都改为用 Describe ( propertylist )函数获取试一下,
------华软网友回复------
PB就这liao样。你一做循环,它的漏洞多多.大部分是PB内部问题BUG.
我在做RichTextEdit是也是这样.后来查到是RichTextEdit控件有问题。这种问题要么升级PB,要么自已手工生成用户对象,再在脚本中自动的产生与关闭.

IF ii_count > 5  THEN
w_main.SetRedraw ( false )
w_main.CloseUserObject( rte_1 )
w_main.OpenUserObject( rte_1 )
rte_1.x = 865
rte_1.y = 112
rte_1.width = 2574
rte_1.height = 1756
w_main.SetRedraw ( true )
ii_count = 0
END IF
你把rte_1改成dw_1, ii_count的大小(这里是5),自已实验,保证不出错就OK.
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。