Производительность парсинга json между jackson и gson

После поиска в 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 для контроля производительности, результат ниже:

  • JAMon Label = jackson, Units = ms .: (LastValue = 18.0, Hits = 30.0, Avg = 18.4, Total = 552.0, Min = 13.0, Max = 37.0, Active = 0.0, Avg Active = 1.0, Max Active = 1.0)
  • JAMon Label = gson, Units = ms .: (LastValue = 4.0, Hits = 30.0, Avg = 2.1666666666666665, Total = 65.0, Min = 0.0, Max = 4.0, Active = 0.0, Avg Active = 1.0, Max Active = 1.0)
  • JAMon Label = jackson, Units = ms .: (LastValue = 20.0, Hits = 30.0, Avg = 15.166666666666666, Total = 455.0, Min = 12.0, Max = 25.0, Active = 0.0, Avg Avg Active = 1.0, Max Актив = 1,0)
  • Ярлык JAMon = gson, единицы = мс .: (LastValue = 4,0, Hits = 30,0, Avg = 2,2, Total = 66,0, Min = 0,0, Max = 9.0, Active = 0.0, Avg Active = 1.0, Max Active = 1.0)
  • JAMon Label = jackson, Units = ms .: (LastValue = 19.0, Hits = 30.0, Avg = 16.433333333333334, Total = 493.0, Min = 11.0, Макс. = 51,0, Актив. = 0,0, Сред. Актив. = 1,0, Макс. Актив. = 1,0)
  • JAMon Label = gson, Units = ms .: (LastValue = 2.0, Hits = 30.0, Avg = 1.9, Total = 57.0, Min = 0.0, Max = 6.0, Active = 0.0, Avg Active = 1.0, Max Active = 1.0)

кажется, что gson быстрее, чем jackson, среднее время gson составляет около 2 мс, а время jackson - около 16 мс, ошибаюсь ли я при использовании Джексона?

6
задан situch 12 October 2011 в 08:02
поделиться