Android - 对大量对象进行慢速内存分配

时间:2018-01-27 18:53:38

标签: java android memory-management garbage-collection

我有Android应用程序,我需要加载一些文件并处理该文件中的每个字符串,并进一步处理这个已处理的字符串。 因此,我为此条目创建了已处理行和持有者的类Entry - 类EntryManager,如下所示:

public class EntryManager {

    private static EntryManager instance;

    private List<Entry> rules  = new ArrayList<>();

    public static synchronized EntryManager getInstance() {
        if (instance == null) {
            instance = new EntryManager();
        }
        return instance;
    }

    public void addRule(String rule) {
        rules.add(RulesParser.parseRule(rule));
    }

    public void clear() {
        rules.clear();
    }
}

Entry类非常简单 - 它包含原始String行和几个布尔标志。条目的一般计数是~70'000,因此将创建70'000个对象。

问题是: 第一次完成需要0.3秒,但所有其他时间需要约7秒。不使用NDK就可以避免吗?

UPD。看起来这是我的失败 - 在测试期间我的手机通过电缆连接到PC,当我拿出来时一切都变好了

0 个答案:

没有答案