我正在使用<代码>SQLite关于安乐施和<代码>植被的数据库。 我认为,我撰写的所有代码>方法需要太多时间。
这是我所说的话:
public static List<Feed> getAll(Context context) {
List<Feed> feeds = new ArrayList<Feed>();
Uri allFeeds = Uri.parse(ContentProvidersUris.URL_CONTENT_PROVIDER_FEED);
long startQuery = BenchmarkUtils.start();
Cursor c = context.getContentResolver().query(allFeeds, null, null, null, "title desc");
long startCursor = BenchmarkUtils.start();
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
long startInsideCursor = BenchmarkUtils.start();
Feed feed = new Feed();
feed.setContent(c.getString(c.getColumnIndex(FeedsProvider.COL_WEBVIEW_CONTENT)));
feed.setDate(c.getString(c.getColumnIndex(FeedsProvider.COL_PUB_DATE)));
feed.setDescription(c.getString(c.getColumnIndex(FeedsProvider.COL_DESCRIPTION)));
feed.setName(c.getString(c.getColumnIndex(FeedsProvider.COL_FEED_NAME)));
Log.d(TAG, "This loop cursor iteration took : " + BenchmarkUtils.stop(startInsideCursor) + " ms.");
}
Log.d(TAG, "Looping through the ENTIRE Cursor took: " + BenchmarkUtils.stop(startCursor) + " ms.");
return feeds;
}
你可以看到,我也正在衡量这一休息时间,因此,它平均需要1800 ms。 (Nexus S
)。 我认为,这是很多时候。 我不理解的是,大部分时间是用在“上,时间是“。 如记录所示:
D/FeedsProviderHelper(5800):这种 lo形曲线透水:1726条。
D/FeedsProviderHelper( 5800): This loop cursor iteration took : 3 ms.
D/FeedsProviderHelper(5800):这种 lo曲器的消旋:2 ms。
D/FeedsProviderHelper( 5800): This loop cursor iteration took : 3 ms.
D/FeedsProviderHelper(5800):这种 lo曲器的消旋:2 ms。
D/FeedsProviderHelper( 5800): This loop cursor iteration took : 3 ms.
D/FeedsProviderHelper( 5800): This loop cursor iteration took : 3 ms.
D/FeedsProviderHelper(5800):这种 lo曲器的消旋:2 ms。
D/FeedsProviderHelper(5800):这种 lo曲器的消旋:零。
D/FeedsProviderHelper(5800):这种 lo形曲线的消旋:5 ms。
D/FeedsProviderHelper(5800):这种 lo曲器的消旋:1 ms。
D/FeedsProviderHelper(5800):这种 lo曲器的消旋:1 ms。
D/FeedsProviderHelper(5800):这种 lo形曲线的消旋:5 ms。
D/FeedsProviderHelper(5800):这种 lo曲器的消旋:1 ms。
D/FeedsProviderHelper(5800):这种 lo曲器的消旋:1 ms。
D/FeedsProviderHelper(5800):这种 lo曲器的消旋:1 ms。
D/FeedsProviderHelper( 5800): Looping through the ENTIRE Cursor took: 1770 ms.
So my questions are:
是否正常? 如果是,为什么? 如果不是的话,我会做什么错呢? 加速填写<代码>的所有 对照KQite数据库?
感谢!
EDIT
我使用了getColumnIndex
。 用“@superfell”建议的语句中,现在我使用的是getAll
,平均1500ms。 我认为(ain)快但还不够快!