タグ

implementationとtipsに関するjjzakのブックマーク (3)

  • インタプリタ型言語を高速化する computed goto : DSAS開発者の部屋

    先日Python 3.1a1 がリリースされました。 Python 3.0 は Python 2.6 に比べてパフォーマンスが悪かったのですが、Python3.1はPython2.6よりも速くなるかもしれません。 Python3.1のパフォーマンス向上は、主に次の2点が影響しています。 ioモジュールがC言語で書き直された computed goto の採用 (--with-computed-gotos というconfigureオプションで有効) computed goto という名前を聞き慣れなかったのですが、調べてみると Ruby 1.9 の VM (YARV) や、 Perl6 の VM として開発されとうとうリリースされた Parrot にも採用されている手法でした。今回は簡単に computed goto の紹介をしてみます。 とりあえず label as value C言語の規

    インタプリタ型言語を高速化する computed goto : DSAS開発者の部屋
  • Linuxカーネルの基本機能:ITpro

    カーネルはLinuxシステムの中核をなす重要なソフトウエア部品です。Linuxを使いこなすためには,カーネルの動作や仕組みに対する理解が欠かせません。連載では,Linuxカーネルの役割とその仕組みを体系的に紹介します。 第1回 カーネルの機能とその利用法 第2回 プログラムとプロセス 第3回 プロセス・スケジューリング 第4回 プロセス・メモリー管理 第5回 カーネル・メモリー管理 第6回 割り込み管理 第7回 ファイル・システム(前編) 第8回 ファイル・システム(中編) 第9回 ファイル・システム(後編) 第10回 ファイル名の文字コード 第11回 デバイス・ドライバ 第12回 ソケット・インタフェース 第13回 IPとルーティング 第14回 TCPとUDP 第15回 パケット・フィルタリングとQoS機能 第16回 排他制御機構 第17回 モジュール機構 第18回 カーネルの起動処理

    Linuxカーネルの基本機能:ITpro
  • 再入不可能な関数を C で実装する - いやなブログ

    再入不可能な関数を C で実装する 一度実行したら二度と中身を実行できなくなる再入不可能な関数を C で実装してみます。通常、このような関数はシングルトンなどの静的なデータの初期化に使いますが、ここではデータについては考えないことにします。 static 変数をフラグに使う まずは最も単純な方法から見ていきます。次の関数は static 変数をフラグに使って再入を防いでいます。厳密に言えば関数そのものには入ってしまっていますが、ここで気にしないことにします。 void once(void) { static int entered; // 最初は 0 if (entered == 1) { // すでに入ったことがある場合は return; // すぐ出る } entered = 1; // 初回の場合のみ、何かを実行する } この方法はシングルスレッドのプログラムではうまく動きますが、マ

  • 1