java Android JSON性能问题
我在将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
我需要一些建议
提前谢谢
斯特凡
# 1 楼答案
为什么不使用杰克逊图书馆。与Gson或其他产品相比,它具有最快的json解析能力。它具有所有功能,json到类obj,obj到json。使用Jackson测试你的表现
# 2 楼答案
我找到了表现缓慢的原因。 如果我不在调试模式下运行应用程序,性能会非常快(<;5秒)。 在我看来,这是一个调试模式问题