タグ

nioに関するjimo1001のブックマーク (4)

  • Java API ダイジェスト java.nio パッケージ

    バッファ バッファはboolean型を除いたプリミティブ型に特化したコンテナクラスです。バッファの主な特徴を次に示します。 容量の拡張が不可 シーケンシャルアクセス Javaのヒープ外のメモリへの直接アクセスをサポート メモリにマップされたファイルをサポート Buffer クラスはabstractクラスなので、使用するのはプリミティブ型に応じた派生クラスです。Bufferクラスは共通機能、派生クラスでは要素にアクセスするためのメソッドなどが定義されています。 New I/Oではヒープ外にバッファを割り付けることができるようになり、大容量でしかも高速にアクセスすることができるようになりました。また、ファイルをメモリにマップすることもできるようになり、これのアクセスにもバッファが使用されます。 チャネル ファイルやソケットへのコネクションを表すのがチャネルです。Channelインタフェースは単

  • jakarta commons の FileUpload と Java の FileChannel と

    jakarta commons の FileUpload と Java の FileChannel と Java 1.4 という古い時代に実装された FileChannel という新しいストリーム処理クラスは、新しいといってもリリースされてかなり時間が経つわけですが、そのわりには応用例が Web であんまり見つかりません。 自分の探し方が甘いんだろうとは思うのですが、そんなに気合い入れて探さないと出てこない情報というのはないも同然なので、自分で覚えたことを忘れないうちにメモって公開しておくことにします。 tomcat で FORM からのファイルアップロードを受ける処理には jakarta commons の FileUpload パッケージを使うのが基中の基。 ところがそのサンプルコードを探すと、どこを見ても FileItem の write メソッドを使うものばかり。ちょっと気が利

    jakarta commons の FileUpload と Java の FileChannel と
  • J2SE, v1.4 の新機能 New I/O Channel 基礎編

    今回取り上げる Channel は、ファイルや Socket といった今までストリームとして扱っていたものに対するコネクションを表すインタフェースです。 今まで java.io パッケージで提供されていた InputStream/OutputStream やその派生クラス群があるのに、なぜ Channel を新たに導入したのでしょうか。 一番大きな理由はやはりパフォーマンスのようです。 ストリームだとちまちまと読み書きを行うイメージがありますが (あくまでもイメージです ^^;;)、Channel をインプリメントしたクラスではガバッと読んで、ガバッと書き込みを行うという感じです。まとめて行うので、その分効率が上がるというわけです。ここで活躍するのが前回の Buffer です。 実際には java.nio.channels.Channel インタフェースには読み込みや書き込みのメソッドは定

  • HTTPサーバにJava NIOは必要か

    0x00. はじめに 筆者はJava製のWAF(Web Application Firewall)、Guardian@JUMPERZ.NETの開発とメンテナンスを行っている。元は自社のシステムを守るために(そして半分趣味で)作ったものだが、数年前にこれをコアのエンジンとしてさらに拡張し、SaaS型の商用サービス「Scutum(スキュータム)」を立ち上げた。 その後順調に顧客を獲得することができ、システムリソース的にも増強が必要となる段階などを経験した。Google、mixiやはてな等、さまざまな大規模サイトのインフラエンジニアの方々がインフラ設計に関する考え方などをインターネット上で公開してくれているおかげで、初期のシステム設計時に「将来的にスケールアウト可能なシステム構成にしておくこと」が重要であるということがわかっていた。その教えに従っていたおかげで、リソースの逼迫(ちなみに今回はCP

    HTTPサーバにJava NIOは必要か
  • 1