0
現在、Jacksonデータバインディングライブラリを使用してMapから52のJavaオブジェクトを作成しようとしていますが、現在52個のオブジェクトすべてを変換するのに合計3.518秒かかります。非常に遅くなる。なぜこれが当てはまるのか分かりません。これは異常ですか、これらのコンバージョンをより速くするためにできることがありますか?ここでJackson Object Mapperを使用してマップをJavaオブジェクトに変換するのが非常に遅い
は私の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;
}
は、私はクラスに変換しようとしています地図です:
{
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
}
、目的に地図を変換するために私のコード:
ObjectMapper m = new ObjectMapper();
MoodDatapoint datapoint = m.convertValue(map, MoodDatapoint.class);
logcatを使用して各オブジェクトの変換時間を計算すると、各変換に平均値o 62ミリ秒F:
...
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を作成しているようです...これは実際に非常に遅いです。 – Okas
@Okasそれは実際問題でした!私は現在、ObjectMapperの単一インスタンスを使用しています。同じ操作で3500+ msから52msになりました。ありがとうございました。 – damememan