【问题标题】:Ionic app performance issues using PouchDB使用 PouchDB 的 Ionic 应用程序性能问题
【发布时间】:2016-12-12 01:23:51
【问题描述】:

我正在调试使用 PouchDB 的 Ionic 应用程序 一页在启动时特别慢,检查它我发现在 8 秒的记录中,pouchdb 使用了约 99% 的 CPU 时间。

pouchdb 包含在我称为localdb 的角度服务中。

chrome-dev-toolsTimeline 标签中使用搜索,我发现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)
    });
}

【问题讨论】:

    标签: angularjs performance ionic-framework google-chrome-devtools pouchdb


    【解决方案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('*');。感谢您的帮助
    猜你喜欢
    • 2018-06-15
    • 2015-05-18
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 2016-05-04
    • 2012-08-22
    相关资源
    最近更新 更多