最近,我注意到来自MATLAB的uigetdir
函数的奇怪行为。
如果我有一个带有某些值的字符串,它对内存几乎没有影响。
>> memory
Maximum possible array: 860 MB (9.014e+08 bytes)
Memory available for all arrays: 1287 MB (1.349e+09 bytes)
Memory used by MATLAB: 435 MB (4.557e+08 bytes)
Physical Memory (RAM): 3317 MB (3.478e+09 bytes)
>> folder = 'C:\Users\MrAwesome';
>> memory
Maximum possible array: 860 MB (9.014e+08 bytes) *
Memory available for all arrays: 1289 MB (1.352e+09 bytes) **
Memory used by MATLAB: 434 MB (4.553e+08 bytes)
Physical Memory (RAM): 3317 MB (3.478e+09 bytes)
但是,如果我使用uigetdir
代替它,它会耗尽大量内存:
>> folder2 = uigetdir;
>> memory
Maximum possible array: 727 MB (7.628e+08 bytes) *
Memory available for all arrays: 1153 MB (1.208e+09 bytes) **
Memory used by MATLAB: 458 MB (4.806e+08 bytes)
Physical Memory (RAM): 3317 MB (3.478e+09 bytes)
如果我从记忆中清除这两个变量,它就不会释放内存!
我查了一下,在任何地方都找不到任何问题。
首先,我想知道如何有效地使用(或使用什么而不是)uigetdir
?
第二次,我想知道如何释放内存来自某些类似的函数/变量?