3

ランタイムをJava7にアップグレードした後、信じられないほどの速度低下が見られます...そして私のプログラムはすべての時間をSimpleDateFormatコンストラクターで費やしています。ここのすばらしい投稿で説明されているように:http ://coffeedriven.org/?p = 83コードは、メソッドTimeZone内のアプリケーションコンテキストの存在をチェックしています。static synchronizedgetDefaultInAppContext()

私にとっての問題は、読み取る行ごとにオブジェクトを作成しているのはSpringBatchファイルリーダーコードであるということです。new SimpleDateFormat

誰かがこれを回避することができますか?

4

4 に答える 4

1

Spring Batch 自体に変更を加えることで、これを解決しました。今のところ、変更はローカル コピーにありますが、Jira の問題を入力したので、Spring Batch 自体に修正を提供したいと考えています。

変更自体は、SimpleDateFormat の使用をメンバー変数から注入されたものに変更することです (とにかく、Spring のように見えます)。これにより、そのライフサイクルを制御できます。

于 2012-10-27T14:49:53.137 に答える
1

SimpleDateFormatは常に遅かったのですが、今ではさらに遅いことがわかりましたJava 7

@MK と同様に、それらもキャッシュします。ただし、スレッドセーフではないことに注意してください。を作成しましThreadLocalsた。

JodaTimeを強くお勧めしますが、使用したことがなく、日付形式があるかどうかもわかりません

于 2012-10-20T01:08:28.313 に答える
-1

Joda Time は、日時計算に最適な Date Time API です。要件で別のタイム ゾーンが必要な場合は、JodaTime API を使用する必要があることに注意してください。

于 2012-10-20T06:48:35.147 に答える