将图像加载到Webview + Safari时,内存会继续增加

时间:2012-04-23 14:43:04

标签: image cocoa memory safari webview

我加载HTML文件,使用Javascript文件将图像加载到WebView。每当我将html文件加载到Web视图时,它会向我显示Activity Monitor中增加的内存。甚至,当我发布Webview时,它也不释放内存。

我没有缓存Webview中的资源。但是,当我使用仪器分析内存时,它会向我显示图像资源缓存在内存中,而不会被释放。

我试图在Safari浏览器中加载相同的HTML文件,我发现了相同的行为。

任何人都可以指导我失踪的地方吗?如何优化WebView的内存加载?

2 个答案:

答案 0 :(得分:1)

请勿使用活动监视器来分析应用程序中的内存性能。

使用Instruments应用及其提供的各种与内存相关的工具,例如分配和泄漏。然后,您就可以确定您的应用是否真正泄露。

答案 1 :(得分:0)

更多输入我如何尝试避免在WebView中进行缓存。

我正在使用下面的代码删除缓存。

    [[NSURLCache sharedURLCache] setMemoryCapacity:0];
    [[NSURLCache sharedURLCache] setDiskCapacity:0];


    WebPreferences *the_pPrefs = [m_pWebView preferences];
    [the_pPrefs setCacheModel:WebCacheModelDocumentViewer];
    [the_pPrefs setUsesPageCache:NO];
    [m_pWebView setResourceLoadDelegate:self];

即使我在下面的委托方法中处理资源加载请求。

- (NSURLRequest *)webView:(WebView *)sender 
            resource:(id)identifier 
     willSendRequest:(NSURLRequest *)aRequest 
    redirectResponse:(NSURLResponse *)redirectResponse 
      fromDataSource:(WebDataSource *)dataSource
{
      NSURL * url = [aRequest URL];
      NSURLRequest * cachelessRequest = [NSURLRequest requestWithURL:url    cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:100];
      return cachelessRequest;
}

我希望我做正确的事情以避免缓存。请给出你的想法。