gpt4 book ai didi

java - 使用 Jackson Object Mapper 将 Map 转换为 Java 对象非常慢

转载 作者:行者123 更新时间:2023-12-01 08:47:59 29 4
gpt4 key购买 nike

我目前正在尝试使用 Jackson 数据绑定(bind)库从 Map 创建 52 个 Java 对象,目前转换所有 52 个对象总共需要 3.518 秒,这似乎非常慢。我不知道为什么会这样。这是一种异常情况还是可以采取一些措施来加快这些转换?

这是我的 Java 对象类:

public class MoodDatapoint extends DocumentModelHelper {

@JsonProperty(value = "happiness")
private int happiness;

@JsonProperty(value = "stress")
private int stress;

@JsonProperty(value = "pain")
private int pain;

@JsonProperty(value = "timestamp")
private long timestamp;

@JsonProperty(value = "lat")
private double lat;

@JsonProperty(value = "lng")
private double lng;

@JsonProperty(value = "comment")
private String comment;

@JsonProperty(value = "event_name")
private String eventName;

@JsonProperty(value = "is_before")
private boolean isBefore;

@JsonProperty(value = "related_event_id")
private String relatedEventID;
}

这是我试图转换为类的 map :

    {
stress=0,

pain=0,

happiness=10,

timestamp=1488464269384,

is_before=false,

lng=-79.6208645,

event_name=null,

comment=,

lat=43.6462939,

related_event_id=null
}

以及我将 map 转换为对象的代码:

ObjectMapper m = new ObjectMapper();

MoodDatapoint datapoint = m.convertValue(map, MoodDatapoint.class);

使用logcat计算每次对象转换的持续时间,看起来每次转换平均需要62毫秒:

...
D/M DATAPOINT CONVERSION DURATION: 68
D/M DATAPOINT CONVERSION DURATION: 45
D/TOTAL DURATION (S): 3550
D/AVG DURATION: 68
D/Total objects:

最佳答案

不要为每个转换创建 ObjectMapper,而是创建一个实例并将其用于所有转换。 ObjectMapper 创建是一项非常昂贵的操作。

关于java - 使用 Jackson Object Mapper 将 Map 转换为 Java 对象非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558626/

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