Firestore在低RAM的设备上会降低离线性能

时间:2019-04-29 15:05:48

标签: android performance google-cloud-firestore ram in-memory-database

我正在开发一个Android应用程序,以与Firestore中的缓存数据库一起使用。

在尝试使其与低内存设备(具有1GB和2GB RAM的设备)一起使用后,我遇到了一个问题。查询将永远占用并占用大部分应用程序内存-请注意,我使用的列表大约有10.000个文档。 一个文档的结构很简单,有10个字符串字段。

这是分析器中的内存使用示例: https://i.ibb.co/MPd9h5g/profiler.png

我尝试使应用程序使用更少的数据,从而使性能更快。随着数据库的大小,它变得越来越慢。

与服务器上的数据库收集同步:

FirebaseFirestore client = FirebaseFirestore.getInstance();
final Query query = client.collection("collection_name").orderBy("name");

ListenerRegistration snapshotListener = query.addSnapshotListener(new EventListener<QuerySnapshot>() {
            @Override
            public void onEvent(@Nullable QuerySnapshot querySnapshot, @Nullable FirebaseFirestoreException e) {
                // success
            }
        });

从服务器进行收集同步后(可能需要几分钟),我正在使用强制缓存源执行查询,如下所示:

Source source = Source.CACHE;
client.collection("collection_name")
                .limit(15)
                .whereEqualTo("some_field", "some_value")
                .orderBy("name").get(source);

如果我使用Source.SERVER实施它,它就可以正常工作。但是我的目标是能够从CACHE那里获得它。

是否有任何方法可以将内存中数据库位置移至存储,以避免内存使用? 还是通过其他方法使大型Firestore数据库与低内存设备一起工作而又不会造成痛苦的负担?

提前感谢您的帮助!

0 个答案:

没有答案