Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 为什么我的应用程序有这么多页面错误?_Macos_Cocoa_Unix_Memory Management - Fatal编程技术网

Macos 为什么我的应用程序有这么多页面错误?

Macos 为什么我的应用程序有这么多页面错误?,macos,cocoa,unix,memory-management,Macos,Cocoa,Unix,Memory Management,我有一个在后台永久运行的mac/cocoa应用程序(它在桌面上放置了一个非交互式小部件) 在运行了很长一段时间(几天)之后,top命令表示它已经产生了超过6亿次的故障(并且这个数字正在缓慢但持续地增长)。相比之下,码头只有700万个故障,运行时间大约是原来的两倍 它只使用了大约10MB的RAM,并且没有任何内存泄漏(我使用的是ARC btw)。有一个简单的动画不断运行 这是否表明我的代码中存在问题?如何修复它?您可以尝试使用fs\u usage工具,该工具将实时显示与文件系统活动相关的系统调用和

我有一个在后台永久运行的mac/cocoa应用程序(它在桌面上放置了一个非交互式小部件)

在运行了很长一段时间(几天)之后,
top
命令表示它已经产生了超过6亿次的故障(并且这个数字正在缓慢但持续地增长)。相比之下,码头只有700万个故障,运行时间大约是原来的两倍

它只使用了大约10MB的RAM,并且没有任何内存泄漏(我使用的是ARC btw)。有一个简单的动画不断运行


这是否表明我的代码中存在问题?如何修复它?

您可以尝试使用
fs\u usage
工具,该工具将实时显示与文件系统活动相关的系统调用和页面错误。例如:

sudo fs_usage cmd_or_PID

或者使用
dtruss
(作为root,使用
-fp-PID
-fn cmd
)检查您的进程。

您是否尝试过在分配工具下运行?如果是这样的话,它会说什么?也许你的应用程序运行的频率不如dock(它会阻塞更长的时间),因此部分应用程序会更频繁地被调出页面。然后,当它运行时,这些部分必须被传回。听起来一点问题都没有!你说的“没有码头那么频繁”是什么意思?我的应用程序一直在运行。大约每秒触发一次计时器,它执行一些基本的数学运算(针对当前时间戳),然后触发一些核心动画不透明度更改,当计时器再次触发时,这些更改将完成动画制作。这几乎就是应用程序的全部功能。@ChrisDevereux我应该在仪器中寻找什么?当我运行它时,没有什么真正让我感到突出的,我只是看到了大量的分配(如果我读得正确的话,主要是通过CoreGraphics)。如果您进行了大量可避免的分配,那么这可能表明您的代码有问题,导致分页增加。否则,你的应用程序和dock之间的区别很可能就在于他们做了不同的事情。