正規表現(java.uitl.regexパッケージ)を使った文字列切り出しと、Stringクラスのsubstringによる文字列切り出しとで性能比較をすると、感覚的には正規表現がかなり遅いと思っていました。 この2つの実行時間を測定して比べてみました。 背景 周期的に送られてくるデータを処理するようなコードでは、一つ一つの処理は短くても、積み上がってみると処理が追いつかずパンクするということがあります。 例えば、通信レコード1件に10種類のデータ項目が含まれ、1データ項目の受信処理に100usかかるとします。ここでデータ項目とは、日時、店コード、品名コード、などです。受信処理は通信フォーマット(ある規則の文字列、バイナリ)をプログラムで扱うデータ型に変換するようなものです。 1秒間に通信レコード1000件の要求が発生すると、受信処理時間は、1000*10*100usで1秒となります。受信処