使用 PouchDB 的 Ionic 应用程序性能问题
Posted
技术标签:
【中文标题】使用 PouchDB 的 Ionic 应用程序性能问题【英文标题】:Ionic app performance issues using PouchDB 【发布时间】:2016-12-12 01:23:51 【问题描述】:我正在调试使用 PouchDB
的 Ionic 应用程序
一页在启动时特别慢,检查它我发现在 8 秒的记录中,pouchdb
使用了约 99% 的 CPU 时间。
pouchdb
包含在我称为localdb
的角度服务中。
在chrome-dev-tools
的Timeline
标签中使用搜索,我发现localdb
被提及218 次,pouchdb
被提及14972 次。
我可以做些什么来了解发生了什么?
编辑:我发现这段代码在 android 设备上(左栏)比在浏览器中(右栏)慢 8 倍
console.time('READ--'+ID)
console.time('WRITE--'+ID)
LDB.query('my_index', //stored index
key: ID,
include_docs: true
).then(function(data)
console.timeEnd('READ--'+ID)
//DO THINGS
obj._rev = data._rev
LDB.put(obj).then(function(ldata)
console.timeEnd('WRITE--'+ID)
);
【问题讨论】:
【参考方案1】:我认为时间轴搜索结果是时间轴生命周期中的引用计数,它通过许多不同的事件(脚本、渲染、绘画)传递。这并不意味着您的代码多次调用 db 函数。此搜索字段用于过滤时间线上的事件类型,例如解析 html。见How to Use the Timeline Tool: Search。
我在最后一两个小时内尝试熟悉PouchDB,但显然要让你了解很多。我设法通过使用文档创建了一个示例应用程序。
我发现你可以通过以下方式获得很多调试信息:
PouchDB.debug.enable('*');
它可能会让您了解瓶颈在哪里。
https://jsfiddle.net/xmr5ksov/
文章12 pro tips for better code with PouchDB 也可能会为您提供一些关于优化数据库和您正在调用的查询的想法。
【讨论】:
嗨,吉迪恩,很抱歉回复晚了。我会尝试使用调试PouchDB.debug.enable('*');
。感谢您的帮助以上是关于使用 PouchDB 的 Ionic 应用程序性能问题的主要内容,如果未能解决你的问题,请参考以下文章
ionic 上的 Pouchdb 和 Cordova-sqlcipher-adapter:有可能吗?
ionic 运用pouchdb/sqlite 数据库做本地存储