gpt4 book ai didi

java - Android JSON 性能问题

转载 作者:行者123 更新时间:2023-12-01 06:17:27 31 4
gpt4 key购买 nike

我在将 JSON 字符串解析回 java 对象时遇到性能问题。这是代码:

public List<BusinessObject> transferToDomain(String pJSON) {
List<BusinessObject> lAllBusinessObject = new ArrayList<BusinessObject>();
if (null == pJSON || pJSON.equals("")){
return lAllBusinessObject;
}
JSON lJSON = JSONSerializer.toJSON(pJSON); <-- LONG RUNTIME HERE!
if (lJSON.isEmpty()) {
return lAllBusinessObject;
} else {
if (lJSON.isArray()) {
JSONArray lJSONArray = (JSONArray) lJSON;
for (Object lObject : lJSONArray) {
JSONObject lJSONObject = (JSONObject) lObject;
lAllBusinessObject.add(doTransfer(lJSONObject));
}
} else {
JSONObject json = (JSONObject) lJSON;
BusinessObject lBusinessObject = doTransfer(json);
if (null != lBusinessObject) {
lAllBusinessObject.add(lBusinessObject);
}
}
}
return lAllBusinessObject;
}

如果我使用 200 个测试对象(在 pJSON 内)运行我的测试方法,整个操作将在不到 2 秒的时间内完成。如果我在 Android 模拟器中运行相同的方法,并且从服务器接收到 200 个对象,则整个操作需要超过 4 分钟!!!

这与那行代码有关:

JSON lJSON = JSONSerializer.toJSON(pJSON);

但我不明白为什么我的 JUnit 方法很快,而模拟器执行该方法却很慢?

我正在使用json-lib-2.4-jdk15.jar

需要一些建议。

提前致谢

斯特凡

最佳答案

我找到了性能缓慢的原因。如果我不在 Debug模式下运行应用程序,则性能非常快(<5 秒)。在我看来,这是一个 Debug模式问题。

关于java - Android JSON 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20774321/

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