明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2498|回复: 8

[求助]用vlax-release-object 清除vla对象

[复制链接]
发表于 2007-12-30 16:48:00 | 显示全部楼层 |阅读模式

为什么要用 vlax-release-object 清除 vla 对象,清除是为了节省内存还是其他原因。

假设变量 obj 是vla对象

(vlax-release-object obj) 的实际意义是什么

(setq obj nil) 可以从内存中清除吗?

请大家指点??

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2007-12-30 23:37:00 | 显示全部楼层

不是清除,是释放对象,vlax-release-object是释放所占用的内存,你可以做个实验看看

(setq obj nil)不行

 楼主| 发表于 2007-12-31 09:19:00 | 显示全部楼层
谢谢指点,怎么做实验呢??
发表于 2008-1-1 22:34:00 | 显示全部楼层

最后用一下GC函数也会好些。

发表于 2008-1-2 10:17:00 | 显示全部楼层

其实vla的对象,是指针。每创建一个指针变量,就要开辟一片内存。

就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据。而局部变量在定义它的函数执行完后都会被系统自动删掉.(这还跟设置为nil值不一样)

动态分配是指针的关键技术。它是用来在不必定义变量的情况下分配内存和让指针去指向它们。

问题是:你动态地分配了一个内存空间,可它绝不会被自动删除。也就是说,这块内存空间会一直存在,直到你告诉电脑你已经使用完了。可结果是,你并没有告诉电脑你已不再需要这块内存空间了,所以它会继续占据着内存空间造成浪费,甚至你的程序运行完毕,其它程序运行时它还存在。当这样的问题积累到一定程度,最终将导致系统崩溃。所以这是很重要的,在你用完它以后,请释放它的空间.

http://www.cnblogs.com/boylee/archive/2007/08/01/839036.html

所以你创建了这样一个对象最好要release它,最后收集内存垃圾。

 楼主| 发表于 2008-1-2 12:52:00 | 显示全部楼层
本帖最后由 作者 于 2008-1-2 12:56:00 编辑

多谢 lidejun_55 MCCAD highflybir 指点,

由highflybir版主的结论可以得出,能用alisp、vlisp的方法,尽量不去用 vla方法,否则要多一个 release 过程。但我们在编程过程中可能会不小心忽略 release ,这样就会造成系统资源的浪费!!

发表于 2017-7-31 16:15:10 | 显示全部楼层
  1. ;;;新建选择集-------------------------------------------
  2. (setq new_ss
  3.        (vla-add        (vla-get-selectionsets
  4.                   (vla-get-activedocument (vlax-get-acad-object))
  5.                 )
  6.                 "test"
  7.        )
  8. )
  9. ;;;新建选择集后,一下步骤是否为必要的过程---------------
  10. (vlax-for each new_ss
  11.   (vlax-release-object each)
  12. )
  13. (vlax-release-object new_ss)
  14. ;;;如果不释放的话,长期运行是不是会导致占用内存过多,机器速度下降?
发表于 2017-7-31 17:08:08 来自手机 | 显示全部楼层
还有下面这句是否有必要
发表于 2017-7-31 17:09:20 来自手机 | 显示全部楼层
还有下面这句是否有必要 (vlax-for each new_ss   (vlax-release-object each) ),还是直接(vlax-release-object new_ss)就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 02:01 , Processed in 0.172205 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表