タグ

Listに関するshigeaki1jpのブックマーク (2)

  • RandomAccess (Java Platform SE 8)

    サマリー: ネスト | フィールド | コンストラクタ | メソッド 詳細: フィールド | コンストラクタ | メソッド Listの実装が高速ランダム・アクセス(通常は一定時間)をサポートしていることを示すために使用するマーカー・インタフェースです。このインタフェースの主な目的は、ジェネリック・アルゴリズムが、ランダム・アクセス・リストまたはシーケンシャル・アクセス・リストのどちらかに適用された時に、動作を変更して、優れたパフォーマンスを実現することです。 ランダム・アクセス・リスト(ArrayListなど)を操作するのに最適なアルゴリズムは、シーケンシャル・アクセス・リスト(LinkedListなど)に適用された時に2次動作を引き起こすことがあります。シーケンシャル・アクセス・リストに適用すると貧弱なパフォーマンスをもたらす場合があるため、ジェネリック・リスト・アルゴリズムでは、アルゴ

  • 軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita

    ざっくり言うと リスト構造のデータに対してランダムアクセスはしちゃだめだぞ。お兄さんとの約束だ! 発端 数年前に他部署の支援で作ったJavaのシステムに、ちょっとデカめのデータを突っ込んだらありえないほど遅いので助けてくれ、と連絡が入った。 まぁクエリとかインデックスをちょっと見れば直るっしょ・・・と鼻をほじりながら支援に向かった。 処理内容 遅い部分の処理は以下のようなものであった。 処理対象のデータをListで受け取る。 それをforループで1件ずつ前処理する。 処理結果をオブジェクトに格納し、ORマッパーでDBにINSERTする。 これだけ? そう、これだけだ。並列処理なんて高級なことはもちろんやってない。 インフラ調査 処理中のサーバのようすを調査する。今回のインフラは典型的な3層3サーバ構成。 WEBサーバはなにもかもが余裕。 APサーバではCPUを1つ使い切っている。 14コア

    軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita
  • 1