簡體   English   中英

使用GoldRaccoon下載大文件時的內存壓力(ftp庫)

[英]Memory pressure while downloading a large size file using GoldRaccoon(ftp library)

我使用GoldRaccoon作為我的第3個ftp庫。 當我下載大文件(> 500MB)時,我的應用程序將因內存不足而崩潰。

下面的快照使用工具來檢測我的應用程序中的內存分配。

在此處輸入圖片說明

在此處輸入圖片說明

似乎self.receivedData占用了過多的內存分配。 收到內存不足警告時如何處理這些分配?

我知道這已經很老了,但我只是在處理完全相同的事情,我敢肯定其他人也是如此。 它很容易修復,不確定最初為什么沒有實現它。

在GRRequestsManager.m中,將此方法替換為此。

- (void)dataAvailable:(NSData *)data forRequest:(id<GRDataExchangeRequestProtocol>)request
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if (![fileManager fileExistsAtPath:[request localFilePath]])
    {
        [data writeToFile:[request localFilePath] atomically:YES];
    }
    else
    {
        NSFileHandle *handle = [NSFileHandle fileHandleForUpdatingAtPath:[request localFilePath]];
        [handle seekToEndOfFile];
        [handle writeData:data];
        [handle closeFile];
    }
}

然后,在-(void)requestCompleted:(GRRequest *)request方法中,刪除下載部分中對文件的寫入。 就是這樣,現在它不再將文件存儲在NSData中並在末尾寫入文件,而是繼續將數據添加到文件中。 我沒有花時間使它漂亮或處理寫錯誤,但是它可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM