我正在尝试运行一些迭代来填充一个大的列表,直到我的内存使用率达到60%,使用该列表,删除该列表,然后再运行一次。如下所示: while True:
ls = []
usage = psutil.virtual_memory().percent
print(usage)
if usage < 60:
ls.append(bigThing)
else:
break
use_list(ls)
#seems redundant, but did this just in case
del l
有人能告诉我如何在C#中释放对象吗?例如,我有一个对象:
Object obj1 = new Object();
//Some code using obj1
/*
Here I would like to free obj1,
after it is no longer required
and also more importantly
its scope is the full run time of the program.
*/
谢谢你的帮助
我有一个包含一些大对象的类:
public class MyClass {
BigObject bo;
public MyClass() { ... }
}
我是否应该像下面这样做一个close方法:
public void close() {
bo = null;
}
我认为这对垃圾收集有好处(?)我在正确的轨道上吗?我应该如何清理这个类呢?
我想我可能误解了用于生成器的try/以外/ finally块的finally子句是如何工作的。
在下面的代码块中,生成器启动线程,如果调用方因任何原因退出,则清除线程。至少这就是目的。
但是,我注意到在一些奇怪的情况下,finally块没有运行:如果调用者引发并捕获自己的异常,并将异常对象赋值给变量,则最终不会运行。我不知道为什么会这样。
这是密码。
import signal
from threading import Thread
import time
class MyThread(Thread):
def __init__(self):
super().__