Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Firebase android查询性能问题_Performance_Android Studio_Firebase_Delay_Instant Run - Fatal编程技术网

Performance Firebase android查询性能问题

Performance Firebase android查询性能问题,performance,android-studio,firebase,delay,instant-run,Performance,Android Studio,Firebase,Delay,Instant Run,我已经过滤了查询,它返回大约220个项目,每个项目有8个字段,没有子节点。这不是数据的一小部分,但肯定不是大部分。 在下图中,发生了以下情况: 第25节-用户点击加载数据,创建eventListener 第31节-数据完全从Firebase DB加载 1分钟47-调用onDataChange并显示数据 我在调试器中看到了一些顶级进程:FirebaseDatabaseWorker。看起来它做了一些加载的数据处理。但是1分钟,30%的CPU??有可能优化吗 谢谢 在Android Studio中禁

我已经过滤了查询,它返回大约220个项目,每个项目有8个字段,没有子节点。这不是数据的一小部分,但肯定不是大部分。 在下图中,发生了以下情况:

  • 第25节-用户点击加载数据,创建eventListener
  • 第31节-数据完全从Firebase DB加载
  • 1分钟47-调用onDataChange并显示数据
  • 我在调试器中看到了一些顶级进程:FirebaseDatabaseWorker。看起来它做了一些加载的数据处理。但是1分钟,30%的CPU??有可能优化吗

    谢谢


    在Android Studio中禁用Instant Run使调用onDataChange的时间从1分钟缩短到5秒左右。

    更多信息:从“query.addListener”行到“public void onDataChange”行间隔1分钟。
    final DatabaseReference artRef = 
    database.getReference("sales/"+store+"/articles");
    Query query = artRef.orderByChild("familyId").equalTo(familyId);
    
            query.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot snapshot) {
                   for (DataSnapshot child : snapshot.getChildren()) {
                        Article article = child.getValue(Article.class);
                        article.id = Integer.parseInt(child.getKey());
                        articles.add(article);
                    }
    
                    adapter.notifyDataSetChanged();
                }