タグ

ブックマーク / www.nminoru.jp/~nminoru (7)

  • 文字列の照合順序(Collation)

    作成日:2014.03.13 更新履歴 (2014.0313) 2013年6月27日の日記と2014年3月3日の日記から作成。 目次 はじめに strcoll 関数 strxfrm 関数 疑問 UTF-8 の話 文字列照合順序(Collation) L1 Base Characters L2 Accents L3 Case/Variants L4 Punctuation Llast Identical ライブラリ実装 参考文献 コメント はじめに C 言語の文字列の比較は strcmp() を用いるのが一般的である。 この関数は 2 つの NULL 終端文字列を先頭から符号なしバイトとして比較し大小関係を決める。 一方、文字列が各国のロケール(locale)を持つ場合、言語・国固有の文字列の照合順序(collation)が存在する。 Collation に基づいて文字比較を行うには str

  • スタックオーバーフローのハンドリング (Stack Overflow Handling)

    作成日:2004.04.12 更新日:2006.02.19 更新記録 (2004.04.12) 3/6、 3/11、 3/13 の日記をまとめて作成。 (2004.05.07) 文章を修正。サンプルコードを追加。 (2005.01.20) alternative → alterante に修正。 (2005.02.13) 追記を記述。 (2006.02.17) linux_stack_info.cpp の実装に誤りがあったので修正。 (2006.02.19) BSD 系OS でのスタック領域情報の取得の仕方を追加 初めに C/C++ でプログラムをしているとつい忘れてしまうのがスレッドのスタックオーバーフローの問題。 最近の OS はスレッド当たり 2〜8MB のスタック領域を持っているため、よほどのことがない限りスタックが溢れてしまうことはない。 だが、再帰や alloca を積極的に使

    yugui
    yugui 2013/11/14
  • NAKAMURA Minoru's Diary (2004年11月)

    2002 | 10 | 11 | 12 2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1

    yugui
    yugui 2006/05/02
    ClassLoaderの挙動
  • NAKAMURA Minoru's Diary (2004年2月)

    yugui
    yugui 2006/05/02
  • Network Attached Processing の Pauseless GC

    更新履歴 (2005.11.18) 脚注*2を加筆。 (2005.11.17) 文章を推敲。 (2005.11.14) NMT bit の read barrier について嘘を書いていたので修正。 目次 前置き Pauseless GC Marking Phase Relocation & Remap Phase おしまい 参考文献 Azul Sysmtes (米日) は Java や .NET に特化した専用計算機 Network Attached Processing (NAP) を提唱し、 製品として Azul Compute Appliance を開発した。 Azul Compute Appliance は、 すでに稼動中の Solaris/Linux の J2SE/J2EE システムの Java VM を Azul Systems が提供するスタブ JVM に置き換えるだけで、

  • Java のクラスアンロード (Class Unloading)

    作成日:2004.05.18 更新日:2005.06.21 今後、随時書き足して行きます。多分。 はじめに Java は動的にクラスのロードとアンロードが行われる仕組みになっている。 クラスはクラスファイルの形でディスク上やネットワークに配置され、プログラム中でそれらが当に必要になった段階で JavaVM 上に読み込まれる。 またクラスはその使用が終わった段階でガーベージコレクターによって動的に回収され JavaVM からアンロードされる。 Servlet / J2EE サーバーなどはこの性質を利用して運用中にプログラムの一部を入れ替えるホットスワップ (Hot Swap) を実現している。 だがこの仕組みを実装するには少し工夫がいる。 この文書ではクラスのアンロードを実現するやり方について述べる。 1. クラスのロードとアンロードの基的な仕組み クラスローダー Java VM がクラ

    yugui
    yugui 2006/05/02
    "Effective ClassLoader"って感じ。
  • Mostly-Concurrent Mark & Sweep GC のアルゴリズム

    目次 1. 前置き 2. HotSpot VM 1.4.x の GC の種類 3. Mostly-concurrent Mark & Sweep 4. 応用 4.1 世代別 GC との組み合わせ 4.2 カードマーキング (Card Marking) 4.3 並列化 (Parallel GC) 4.4 ビットワイズ・スイープ (Bitwise Sweep) 4.5 インクリメンタル・コンパクション (Incremental Compaction) 5. 参考文献 脚注 コメント 1. 背景 ガーベージコレクション(GC) には色々なアルゴリズムが存在するが、大雑把に言って Stop-the-World (STW) 型 GC と On-the-fly 型 GC に大別される。 STW 型の GC はプログラムの実行中にはガーベージの回収を行わず、メモリが枯渇した時になって始めてガーベージの回

  • 1