2012-04-23 53 views
2

我加載了使用JavaScript文件將圖像加載到WebView的HTML文件。每當我將HTML文件加載到Web視圖時,它都會顯示活動監視器中增加的一些內存。甚至,當我釋放Webview時,它也不釋放內存。將圖像加載到Webview + Safari時內存不斷增加

我沒有在Webview中緩存資源。但是,當我使用儀器來分析內存時,它顯示我的圖像資源被緩存在內存中,不會被釋放。

我試圖在Safari瀏覽器中加載相同的HTML文件,我發現了相同的行爲。

任何人都可以請指導我失蹤的地方嗎?我如何優化內存加載到WebView?

回答

1

不要使用Activity Monitor來分析應用程序中的內存性能。

使用Instruments應用程序及其提供的各種與內存相關的工具,例如分配和泄漏。然後,您將能夠確定您的應用程序是否真正泄漏。

+0

感謝Rob的快速回復。正如我所提到的,我使用過儀器,並且從那裏只有我知道當WebView加載到WebView時,WebView佔用內存。 – user1351584 2012-04-24 06:54:20

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; 
} 

我希望我做正確的事情,以避免緩存。請給你的想法相同。