你的心理模型是什么?它是如何实现的?它有哪些优点和缺点?MATLAB GC与Python GC?
我有时会在使用MATLAB嵌套函数时看到奇怪的性能瓶颈,否则看起来无关紧要,我确信这是因为GC.垃圾收集器是VM的重要组成部分,Mathworks不会将其公开.
我的问题是关于MATLAB自己的堆和GC!不是关于Java/COM对象的处理/防止"内存不足"错误/堆栈变量的分配.
假设我有一堂课myClass < handle.从Mathworks帮助页面上clear,
清除句柄图形句柄不会删除对象本身,删除对象也不会删除存储其句柄的变量.
hf = figure; % Creates figure object, stores handle in variable hf
delete(hf) % Removes figure object, but not the variable hf
clear hf % Removes hf from the workspace; figure could still exist
Run Code Online (Sandbox Code Playgroud)
所以clear句柄对象不会将其从内存中删除,除非我先明确delete它.
我指定了一个析构函数myClass来进行适当的清理并删除一些引用; 这个析构函数没有被调用clear.当我的对象被清除时,是否可以调用该析构函数?
编辑:我要提的是,虽然delete自动与一个名为clear如果有到无的参考myClass对象,我有另一个类,说myOtherClass与参考性质myClass,说myOtherClass.a.还有其他属性myOtherClass不是属性myClass,但如果它们myOtherClass.a也是空的,它们应该是空的.如果这没有意义,请告诉我,这可能有点过于冗长.