私は、ホテルのデータについては、以下のモデルを持っているマルチスレッドを使用してメソッド操作を高速化できますか?
public class HotelData {
private String name;
private String address;
private String stars;
private String contact;
private String phone;
private String uri;
public HotelData(String name, String address, String stars, String contact, String phone, String uri) {
this.name = name;
this.address = address;
this.stars = stars;
this.contact = contact;
this.phone = phone;
this.uri = uri;
}
public HotelData() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getStars() {
return stars;
}
public void setStars(String stars) {
this.stars = stars;
}
public String getContact() {
return contact;
}
public void setContact(String contact) {
this.contact = contact;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
}
そして、私はJSON形式で変換するために、リストの行を使用して、次のメソッドを使用します。
@Override
public void dataToJsonConverter() {
ObjectMapper mapper = new ObjectMapper();
try {
String jsonInString = "";
for (HotelData hotels : rows) {
jsonInString += mapper.writeValueAsString(hotels);
}
mapper.writeValue(new File(Constant.OUTPUT_LOC + "/result.json"), jsonInString);
// jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(hotelData);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("CONVERTED TO JSON");
}
ただし、データ量は膨大で、変換に数秒かかる。マルチスレッドを使用してプロセスを高速化する方法は?私はスレッディングに関する多くの経験がないので、質問が適切でない場合は謝罪を受けてください。私はちょうどデータの会話をスピードアップしたい。
更新:驚くべきことに、StringBuilder
は、String
よりも約25倍高速です。 WOW
どのプロセスをスピードアップしますか?ファイルへの書き込み?次に、答えは "no" – UnholySheep
この行は、mapper.writeValue(新しいファイル(Constant.OUTPUT_LOC + "/result.json")、jsonInString); 'JSONファイルにデータを書き込みます。これが不可能な場合、forループのスピードアップはどうですか?私はパフォーマンスを向上させることができれば非常に役に立ちます。 – Chaklader
スレッディングの前に、とにかくファイルへの書き込みを避けることができますか?またはそれを最小化する。 。マルチスレッドに関係なくボトルネックになります。 – Xenwar