gpt4 book ai didi

android - sqlite 上的简单 Delete() 命令需要将近一秒钟?

转载 作者:行者123 更新时间:2023-11-29 22:29:31 28 4
gpt4 key购买 nike

在数据库助手类中调用 delete() 命令导致我的 android 应用程序的 UI 出现延迟。我对它做了一个计时器测试和简单的命令 this.db.delete("tonightSets", "id = "+item_id, null);需要很长时间才能返回。这是我重复执行相同查询的速度(以毫秒为单位)1229毫秒287毫秒779毫秒2604 毫秒!817毫秒为什么这么慢?该表只有 30 条记录,每行大约有 10 列。我在同一个表上执行更复杂的多个选择和计数函数,返回时间不到 9 毫秒我怎样才能解决这个问题?有没有一种方法可以异步执行,这样就不会在 UI 中造成延迟?非常感谢

最佳答案

Why is this so slow?

如果您在设备上运行它,欢迎使用闪存 I/O。闪存 I/O 可能会非常慢,具体取决于设备的其他情况。大多数 Android 设备使用 YAFFS2 文件系统,它使用全局分区锁来对文件系统进行单线程访问。由于磨损级别平衡和诸如此类的原因,闪存写入速度更慢。

您应该观看 Brad Fitzpatrick 在 2010 年 Google I|O 大会上的“编写 Zippy Android 应用程序”演示文稿。在那里,他指出将单个字节写入闪存——虽然通常非常快——有时可能需要 200 毫秒。

因此,一般建议不要在主应用程序线程上执行闪存 I/O。

is there a way to do it asynchronously so it doesn't create a lag in the UI?

使用AsyncTask

关于android - sqlite 上的简单 Delete() 命令需要将近一秒钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4680201/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com