パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

メモリー上で処理するよりもディスクに直接書き込む方が高速?」記事へのコメント

  •  文字列にあわせて新しい領域をとるために遅いことはわかりますが、Javaのほうが遅いというのは、ヒープ領域が小さすぎて、
    GCが多数回動いているからでしょうか?

    • by t-wata (10969) on 2015年03月28日 21時33分 (#2786593) 日記

      コード見ればわかりますが、毎回書き込みはバッファリング効かせてるんでシステムコールの回数はかなり抑えられてます。
      一方でメモリ上で結合の方は、Stringで+を使っての結合なので、内部では new StringBuffer(orig).append(str).toString()が毎回走るので遅くて当たり前です。
      GC以前に「そりゃそうなるよな」としか言いようがないです。

      親コメント
      • by Anonymous Coward

        文字列の結合に+を使用しているプログラマーはディスクアクセスが遅いなんてことは気にしないはずなので、
        メモリ上で処理しようなどとは思ないんじゃなかろうか。
        結果、直接書きこもうとするのでパフォーマンスの問題は無くなる。
        めでたしめでたし。

Stay hungry, Stay foolish. -- Steven Paul Jobs

処理中...