gpt4 book ai didi

java - Android 反序列化 Arraylist 的速度问题

转载 作者:行者123 更新时间:2023-12-02 06:45:30 27 4
gpt4 key购买 nike

我有一个 ArrayList allFeeds 和一个读取序列化数据的方法。

@SuppressWarnings("unchecked")
public void loadFile() {

final String FILENAME = "feeds.ser";
File file = fileContext.getApplicationContext().getFileStreamPath(FILENAME);

try {
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
allFeeds = (ArrayList<Feed>) ois.readObject();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

序列化数据存储在一个 0.49mb 大小的文件中,由 33 个 Feed 对象组成。 Feed 对象的结构如下,HashMap 最多可容纳 900 个键对值:

int id;
String name;
int datatype;
String tag;
Long time;
Double value;
String dpInterval;
HashMap<Long, Double> historicFeedData;

将数据加载回数组列表需要相当长的时间(平均时间为 13.5 秒)。 GC_CONCURRENT在执行过程中反复释放内存。

是否有办法提高此操作的速度,或者只是提高其处理的数据量?如果是这样,是否建议将其推送到 aSyncTask 或后台服务中?

最佳答案

缓冲 inputReader。应该可以节省 75% 左右。

关于java - Android 反序列化 Arraylist 的速度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18678615/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com