基于这个堆栈溢出线程,我使用malloc_size来测量我的AAA类内存使用情况。
AAA 类定义如下:
@interface AAA : NSObject
@property (assign) CVPixelBufferRef pixelBuffer;
@property (assign) size_t bytesPerRow;
@property (assign) AVCaptureVideoOrientation videoOrientation;
@property (assign) Float64 videoFrameRate;
@property (assign) CMVideoDimensions videoDimensions;
@property (assign) CMVideoCodecType videoCodecType;
@end
呼叫时 malloc_size((__bridge const void *)AAAClassInstance)
输出值为 80。但是,pixelBuffer 中每行的字节数远大于 80。我通过调用CVPixelBufferGetBytesPerRow( [AAAClassInstance pixelBuffer] )
来获得 2560我是否错过了在类中返回正确内存使用情况的任何方法实现?
感谢您为此花费宝贵的时间。
pixelBuffer
是一个指针,因此它的size
只是指针的大小。要计算对象的总大小,您需要遵循所有指针,获取它们的大小并遵循可能包含的任何指针。