タグ

bufferに関するterurouのブックマーク (6)

  • New I/O バッファの使い方 - Java 入門

    New I/O バッファとは? 低レベル I/O が望ましい場合、例えば OpenGL ライブラリを利用する時にも NIO Buffer は利用されます。ここでは具体的な利用例と、それぞれのコードの意味をみてみましょう。 NIO バッファにはダイレクトバッファ (direct buffer) と非ダイレクトバッファ (non-direct buffer) があります。 ダイレクトバッファでは、 Java VM は可能な限りネイティブ I/O 操作を実行するよう試みます。 これによって、中間のバッファの割り当てを抑えます。 allocateDirect メソッド等で割り当てたバッファは ダイレクトバッファになります。通常ダイレクトバッファの割り当て、解放のコストは、そうではない場合より高くなります。 このため短時間で割り当て、解放を繰り返すような操作には向きません。サイズが大きく、生存時間の

    New I/O バッファの使い方 - Java 入門
    terurou
    terurou 2012/11/16
    Javaにdirect bufferとnon-direct bufferの違いがあるっての知らんかった。前者はヒープ外に領域確保、パフォーマンスは良い、解放コストが高い(生存期間の長いバッファに使うべき)
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • テキストエディタ用バッファの各種データ構造とその評価 (2)

    vector類をvector類で管理する組み合わせについて、考察とパフォーマンス測定を行う。 測定項目は以下の項目とする。 バッファ構築時間 シーケンシャルアクセス+1文字削除時間・使用メモリ量 シーケンシャルアクセス+1文字挿入時間・使用メモリ量 vector<shared_ptr<array<char>>> 最も基的な組み合わせ。 STL には array が無いので、reserve であらかじめ領域を確保しサイズを固定にした vector<char> を代わりに用いる。 array のサイズは 32KB としてみる。array サイズを変えた場合の計測は余裕があれば行う。 文字データが array サイズ以上になった場合、可能なら前後の array に送る。そうでない場合は新たに array を作成する。 編集コストおよびブロック分割時コストは、ブロックサイズを B とすれば O(

    terurou
    terurou 2010/02/15
    オンメモリに全て展開出来る場合はGapBuffer、メモリに格納できない場合はPieceTable
  • テキストエディタ用バッファの各種データ構造とその評価

    概要 テキストエディタのためのバッファの各種データ構造について述べ、 それらを筆者がC++で STLに準じたインタフェースを持つテンプレートクラスとして実装したものについて、 パフォーマンス(処理速度、使用メモリ量)計測を行った結果を報告する。 筆者が実際にテキストエディタを実装する場合にどのデータ構造がよいか、という視点で評価を行う。 目次: はじめに バッファに要求される機能・性能 バッファクラスのインタフェース パフォーマンス計測 各種データ構造 gap_vector<wchar_t> VS. list<wstring> gap_vector<wstring> 終わりに 参考文献 はじめに テキストエディタは、簡単に言うと、シーケンシャルなテキスト情報を保持し、ユーザの指示により内容を表示、修正するプログラムである。 上図のような構造はオブジェクト指向な設計と親和性が高い。 テキスト

  • w.l.o.g. ギャップバッファ

    04:40 04/06/04 ピーステーブル PieceTable とも言う。文字列の Piece(小片)を繋げて、 一つの巨大な文書を表現する方式。 検索すると引っかかる文書のほとんどが AbiWord 関係なので、 このワープロソフトの主要な内部データ構造ということなのかな。 他に、MS-WordやOpenOffice.org関連の文書にも登場していて、 基的に単なるテキストエディタよりは、文字に付加情報をくっつける系の 編集ソフトに使われる場面が今のところ多いみたいです。 余談ですがAbiWordは、綱渡り的にですがBeOS版の開発が続いている貴重なワープロソフトなのです。感謝感謝。 概要 ファイルを読み込んだとしましょう。ABCDEFG、という7文字のファイル。 とりあえず、7文字分のOrigという名前のバッファを用意して、そこに格納します。 それと別に、Addという名前の空のバ

    terurou
    terurou 2010/02/15
    PieceTableの基本構造解説
  • 論文読み Charles Crowley. Data Structures for Text Sqeuences. 1998 - 言語ゲーム

    http://ned.rubyforge.org/doc/crowley98data.ps.gz 他に面白いリンクがここに一杯ある。 http://ned.rubyforge.org/ 結論 テキストエディタのデータ構造としては、piece table method が一番良い。 感想 今更テキストエディタを自分で作りたいという変わった人は読んだ方が良いです。この論文では、テキストをメモリやディスクでどのように保持するかという問題を、挿入、削除、位置特定の速度という観点から調べています。 位置特定とは、文を前から数えてどの位置にどの文字があるか調べるという問題ですが、ある位置を調べた後、次に調べたくなるのは前回調べた位置のすぐそばである可能性が高いという前提に立っています。 表示、例えばテキスト回り込みやプロポーショナルフォントの問題には触れていません。 UTF-8 のような可変長エンコー

    論文読み Charles Crowley. Data Structures for Text Sqeuences. 1998 - 言語ゲーム
  • 1