#define TICK NSDate *startTime = [NSDate date]#define TOCK NSLog(@"Time to process: %f",-[startTime timeIntervalSinceNow])解决方法 你将不得不做一些工作来使这个工作,但这是你如何做到这一点.
>从这个SO answer,您可以了解如何获得当前的cpu使用率.
>从这个SO answer,您可以了解如何获得当前的内存使用情况.
现在你可以产生一个新的线程,定期或按需检查cpu和内存,然后创建一个类,如下所示:
@interface ProfilerBlock-(ID) init;-(voID) end;@end
> init方法应初始化当前时间并注册ProfilerBlock实例,以从工作线程获取有关内存使用情况和cpu使用情况的信息.
> end方法应该计算时间并打印所有需要的信息或将其写入文件或其他东西:)
现在为ProfilerBlock类创建一个C风格的释放函数
static voID __$_Profiler_Block_Release_Object_$__(ProfilerBlock **obj) // the long name is just to prevent duplicated symbol names //{ [(*obj) end]; [(*obj) release]; (*obj) = nil;}
最后,您可以创建宏来让您的生活更轻松:
#define CONCAT2(x,y) x ## y#define CONCAT(x,y) CONCAT2(x,y)#define PROfileR_ScopE_OBJECT __attribute__((cleanup(__$_Profiler_Block_Release_Object_$__)))#define PROfile_BLOCK ProfilerBlock *CONCAT(__profilerBlock_,__liNE__) PROfileR_ScopE_OBJECT = [[ProfilerBlock alloc] init];
完成所有这些后,您可以分析如下方法:
-(voID) methodtoprofile{ PROfile_BLOCK // add some code to profile here // // the "end" function will get called automatically after the method is done,even if you return early,allowing you to process the profiled data //}
我希望这会有所帮助,对不起,如果我没有详细介绍如何测量内存和cpu,但我相信其他答案已经很好地介绍了.
@H_403_55@ 总结以上是内存溢出为你收集整理的ios – iPhone中方法调用的CPU和内存使用情况全部内容,希望文章能够帮你解决ios – iPhone中方法调用的CPU和内存使用情况所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)