这样的代码:
json.loads(source)
在P1,内存使用量增加20MB,这很容易理解,但P2和p3也会增加20MB。我打印的物品和genePasteboard.items的地址,那两个是不一样的,这意味着我每次参考genePasteboard.items,它会复制整件物品吗?
我的另一个问题是:当我使用这样的代码清除UIPasteboard时:
NSData *data = [NSMutableData dataWithLength:20*1024*1024];
UIPasteboard* genePasteboard = [UIPasteboard generalPasteboardSwizzle];
genePasteboard.items = @[@{@"test":data}]; //P1
NSLog(@"%d", (int)[genePasteboard.items count]); //P2
NSArray<NSDictionary<NSString *, id> *> *items = genePasteboard.items //P3
内存使用率不会立即降低,只有当我继续这个过程时,它会在某个时候释放(猜测在下一个主循环?),所以,我怎么知道genePasteboard.items内存何时释放还是我可以马上发布它?