malloc_size返回不正确的值



基于这个堆栈溢出线程,我使用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只是指针的大小。要计算对象的总大小,您需要遵循所有指针,获取它们的大小并遵循可能包含的任何指针。

相关内容

  • 没有找到相关文章

最新更新