WebView消耗100%的CPU

时间:2013-10-10 23:27:32

标签: macos cocoa webview cpu-usage

我有一个非常简单的可可应用程序(不是iphone),它由一个覆盖整个应用程序窗口的WebView实例组成。我注意到在某些页面上,该应用程序将占用其中一个核心的100%。使用Instruments我可以看到几乎所有的时间都花在[NSView displayIfNeeded]上。向下钻取调用树会导致[WebHTMLView drawSingleRect]。在Safari中运行的同一页面工作正常,几乎没有CPU使用...

任何人都有任何想法,为什么会这样?

其他信息:

  • 如果我调整应用程序窗口的大小(即使是很小的数量),CPU使用率也会下降。
  • 运行OS X 10.8.5
编辑:我发现的唯一'修复'是添加NSTimer调整窗口大小。如果有人知道在调整大小期间发生了什么会“解决”这个问题,我很乐意听到它。

[NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(resizeToFixCPUUsage) userInfo:nil repeats:YES];

- (void)resizeToFixCPUUsage {
    NSRect frame = [self.window frame];
    frame.size.height -= 1;
    [self.window setFrame:frame display:NO animate:NO];
    frame.size.height += 1;
    [self.window setFrame:frame display:NO animate:NO];
}

显示CPU使用率的仪器: Instruments showing CPU usage

Web Inspector显示绘画(app使用100%CPU匹配实心紫色条): Web Inspector showing Paint

0 个答案:

没有答案