После поиска в google обнаружил, что производительность jackson лучше, чем gson, я планирую заменить gson на jackson в моем проекте, но я получил другой результат при запуске тестового кода.
private static final Type PHOTOLINKS_TYPE_GSON = new TypeToken<List<Photo>>() {}.getType();
private static final Type PHOTOCAPTIONS_TYPE_GSON = new TypeToken<List<String>>() {}.getType();
Gson gson = new Gson();
private void testGson(String photoJson, String captionJson) {
GSON_MON.start();
List<Photo> photos = gson.fromJson(photoJson, PHOTOLINKS_TYPE_GSON);
List<String> photoCaptions = gson.fromJson(captionJson, PHOTOCAPTIONS_TYPE_GSON);
GSON_MON.stop();
}
TypeReference<List<Photo>> PHOTOLINKS_TYPE_JACKSON = new TypeReference<List<Photo>>(){};
TypeReference<List<String>> PHOTOCAPTIONS_TYPE_JACKSON = new TypeReference<List<String>>(){};
ObjectMapper mapper = new ObjectMapper();
private void testJackson(String photoJson, String captionJson) {
JACKSON_MON.start();
try {
List<Photo> photos = mapper.readValue(photoJson, PHOTOLINKS_TYPE_JACKSON);
List<String> photoCaptions = mapper.readValue(captionJson, PHOTOCAPTIONS_TYPE_JACKSON);
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
JACKSON_MON.stop();
}
Photo - это обычный класс:
@JsonIgnoreProperties(ignoreUnknown = true)
private static class Photo implements Serializable {
private static final long serialVersionUID = 5645393489907650496L;
public String small;
public String middle;
public String orign;
public String caption;
public String ow;
public String oh;
}
, а фотография json выглядит примерно так: [{"id": "1318403074887", "orign": "xxx.jpg", "ow": 427 , "small": "xxx.jpg", "middle": "xxx.jpg", "oh": 640}, {"id": "1318403076793", "orign": "xxx.jpg", "ow" : 640, "small": "xxx.jpg", "middle": "xxx.jpg", "oh": 480}, {"id": "1318403092168", "orign": "xxx.jpg", " ow ": 425," small ":" xxx.jpg "," middle ":" xxx.jpg "," oh ": 640}]
Я использую JAMon для контроля производительности, результат ниже:
кажется, что gson быстрее, чем jackson, среднее время gson составляет около 2 мс, а время jackson - около 16 мс, ошибаюсь ли я при использовании Джексона?