我遇到了一些性能問題加載從sqlite3的表約60圖像如下表所示:提高iPhone的性能 - 從sqlite3的數據庫加載圖像
select rowid, thumbnail
from my_table
where category_id = 4
我有CATEGORY_ID指數,但它需要大約2.5秒鐘可以加載一張包含170張70x70 PNG圖像的表格。
在我的代碼,我創建一個NSMutableArray代表每一行的對象,像這樣:
Item* item = [[Item alloc] init];
item.rowid = sqlite3_column_int(statement, 0);
int thumbnailLength = sqlite3_column_bytes(statement, 1);
NSData* data = [NSData dataWithBytes:sqlite3_column_blob(statement, 1) length:thumbnailLength];
item.thumbnail = [[UIImage imageWithData:data] autorelease];
[result addObject: item]
的iPhoto可以與幾乎沒有可見的加載時間加載一張專輯。是否有一些我錯過的可以提升性能的SQLite3技巧?
我只想添加一點這個迴應。你也應該考慮提取你需要的東西。如果你使用的是表格視圖,比如說,你可以一次獲取一個東西(或者分組和緩存)。如果您使用自定義控件,請考慮讓它遵循類似的模式,只需獲取您所展示的內容即可。 SQLite將接受如下內容:SELECT * from myTable limit 1 offset 10; 這會讓你只是10日的記錄,例如。哦,但不要使用*,因爲這很俗氣。 – mousebird 2009-10-08 15:20:50