hur.cn - 华软网

 热门搜索

如何释放blob变量占用的内存空间?

  作者:未知    来源:网络    更新时间:2017/9/29
updateblob 之后怎么样释放blob占用内存
大家有没有可行的办法
------华软网友回答------
自动释放啊
------华软网友回复------
PB会自动清理,如果你需要人工干预,可以通过 GarbageCollect ( ) 函数,详见:

***************************************

Garbage collection involves marking objects which are no longer accessible, clearing those objects out of memory, and reclaiming memory for the objects the application is actively using. 

Garbage collection in PowerBuilder 

PowerBuilder counts references on each application object and marks as garbage those objects and object classes that have no references. 
You can control garbage collection by forcing immediate garbage collection or changing the interval at which PowerBuilder collects marked objects.

When PowerBuilder checks for garbage

PowerBuilder automatically checks for garbage when:

?An object loses an instance reference

When an object loses an instance reference, PowerBuilder checks the object's reference count. If that count is zero, PowerBuilder marks the object as garbage.

?The period since the last garbage collection is greater than the specified interval

When PowerBuilder returns from executing any system-triggered event, it compares the elapsed time since it last ran a garbage collection pass to the specified garbage collection interval. If the elapsed time exceeds the current garbage collection interval, PowerBuilder executes a pass to mark any qualified objects and classes as garbage. 

The default garbage collection interval is 0.5 seconds.

How you can control garbage collection

Your application can control garbage collection by:

?Forcing garbage collection

The GarbageCollect() function forces the immediate collection of those objects PowerBuilder has marked as garbage.

?Modifying the garbage collection interval PowerBuilder uses

The GarbageCollectGetTimeLimit()  function allows you to get the current interval, and the GarbageCollectSetTimeLimit() function allows your application to set a new interval for PowerBuilder to use.
------华软网友回复------
为什么每当我由一个多媒体文件生成blob变量,然后执行updateblob后,再打开界面,上边的图片都不能显示
------华软网友回复------
SetNull(lblb_var)
------华软网友回复------
SetNull,
或者重新定义一个二进制变量,将存放数据的变量赋值为这个空变量
------华软网友回复------
一般local变量在事件(函数)运行完后会自动销毁的,不用人工干预. 
如果是实例变量的话,可以用setnull()


------华软网友回复------
SetNull释放空间了吗?只是置空而已吧。
------华软网友回复------
对变量可以! 对数组不可以
------华软网友回复------
在程序里创建blob变量updateblob后,界面上的图片不能显示出来,是不是由于内存没有释放的缘故.各位有没有遇到这种状况,共享一下经验
------华软网友回复------
代码贴出来吧,不知你在说什么呢
------华软网友回复------
就是程序里上传一个blob到数据库,应用系统里的所有背景图,图标都不能显示了,所有图片都不能显示

------华软网友回复------
试试看updateblob 之后用commit;或是disconnect;
看你说的好像是数据库锁定了,
如果经常出现这个问题,建议定义一个自己的transaction对象
需要时连接,用完后断开。
------华软网友回复------
每次都会出现这个问题,是不是和服务器的设置有关
------华软网友回复------
打补丁吧!
------华软网友回复------
上传一个16M的文件要一分半,下载要2分10秒,多半时间使用在FileRead(f,blob) 要循环474次
太慢了有没有好办发
------华软网友回复------
这种东西本来就别放库里,数据库是文件服务器吗?

------华软网友回复------
1.关于图片的问题应该是由于上传过程中程序进入"死循环"状态,所以图片暂时不见了.上传好了以后就行了.
2.没有什么好办法,其实主要的时间,不是读取文件,而是把blob传到数据库上! 想节省时间的话,先压缩再存进数据库
------华软网友回复------
如果用文件服务器,怎么样上传到服务器.有可用ftp控件吗MsiTransfer不好用
------华软网友回复------
这个时间我算了,updateblob 和selectblob都是20sec,从文件读到blob要用1-2分钟
------华软网友回复------
上传完后,图片仍然不能显示出来,退出在进入才可以
------华软网友回复------
1.打了补丁没有?
2. ... 从文件读到blob要用1-2分钟? 不会吧!除非你的机器内存不够

------华软网友回复------
512M内存应该够用吧,谁帮我试试20M的文件读到blob要多久,
pb version 9.0.2

------华软网友回复------
试了一下,pb8,c1.7g 256m需要40-43秒,时间是长了点!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。