我有一个关于使用本机技术反应的移动应用程序的新项目。
我正在考虑使用redux来管理来自远程服务器api的整个数据。我们的产品需要在移动应用中显示更多业务数据。
所以,我的问题是:redux state存储我们的业务数据,它将在移动设备上占用更多内存,如ListView组件。如果我想减少内存使用量,我该如何解决这个问题呢?
答案 0 :(得分:6)
我根据你对你要做的事情的背景描述选择,一般地解决你的redux商店大小的基本问题以及在我的答案中将所有内容存储在客户端上的方法,并且不会具体说明如何在这里实际减少数据存储的大小(唯一的答案就是“不要存储太多”)。
这只是一个完全的赃物而忽略了诸如压缩,数据复制,在AsyncStorage中存储内容与仅仅在内存中存储之间的区别等等。
话说回来,如果你需要某种内容来检查内存/存储是否会成为一个问题,请拿一个由API提供的代表性记录数据块,将其序列化为JSON字符串,并弄清楚有多大它是。
例如,此example twitter response大约为8.5 KB,删除了空格。为简单起见,我们为每条记录说10KB。
现在,你打算减少多少条记录? 10? 100? 1000?比方说1000这种类型的记录。这是10,000KB或大约10MB。
使用这里的结构,10 MB是(编辑:取决于您关注的特定约束,可能是也可能不是)在您的应用程序中使用的大量内存/存储。
您需要针对特定用例执行此类似的过程,并查看您希望存储的数据量是否会成为您必须支持的设备的问题。
需要考虑的一个更重要的事情是,如果需要,可以通过单个线程上的大量数据来进行数据操作,加入/合并等操作,从而对性能产生影响。
Redux是一个很小的库,实际上并没有为你做那么多。这种考虑是一般性的,对您自己的应用程序来说是完全独特的,无法得到具体的回答。