タグ

2010年12月27日のブックマーク (5件)

  • Tokyo Cabinet - PukiWiki Plus!

    公式 Tokyo Cabinet: DBMの現代的な壱実装 http://1978th.net/tokyocabinet/ Tokyo Tyrant: network interface of Tokyo Cabinet http://1978th.net/tokyotyrant/ インストール方法 by FreeBSD Tokyo Cabinetにはzlibとbzip2が必要なので、あらかじめインストールしておく。 (今回はbzip2はインストールされていたので無視) # wget "http://sourceforge.net/projects/libpng/files/zlib/1.2.5/zlib- 1.2.5.tar.gz/download" # tar -xvzf zlib-1.2.3.tar.gz # cd zlib-1.2.3 # ./configure # make

    ad2
    ad2 2010/12/27
  • blog.katsuma.tv

    greeさんで開催されたKey Value Store勉強会に行ってきました。 時間にして4時間超え、内容も国内のKey-Value Storeなソフトウェアの最前線の話ばかりで相当なボリューム。以下、メモってたのを残しておきたいと思います。(誤字、脱字、内容に誤りを含むものなどありましたらお伝えください)また、発表者の方やプロダクトについて、ざっくり調べてURL見つけられたものについてはリンク張っています。 森さん / 末永さん   groonga Sennaの後継エンジン 融通が効かないのがSennaのデメリット スコア算出式のカスタマイズなど Sennaの転置索引 索引の構成部品を自由に組み合わせて使える APIもいろいろ QL DB Low Level memcached互換のkey-value store バイナリのみ対応 計測 クライアント memstorm-0.6.8 mem

  • 開発メモ: 入出力系システムコールの基礎的な負荷を可視化

    openとかreadとかのシステムコールを呼ぶだけの簡単なお仕事に携わる皆様、こんにちは。 普段自分が使っているシステムコールって、他にオーバーヘッドがない理想的な状態だとどれくらいの負荷になるんだろう。そんな漠然とした疑問を持ちつつも、面倒なんで自分で測ることなく日々を過ごしている人も多いかもしれない。それじゃいけない。純粋にそのシステムコールを呼ぶとどれくらいの負荷がかかるのかを知っておかねばならない。 ということで、簡単なテストプログラムを書いてみた。各システムコールの典型的な組み合わせでどれくらい時間がかかるかを見るのだ。「gcc -std=c99 -Wall -O2 -o mytest mytest.c」でビルドできる。結果は環境依存性が強いだろうから、ぜひ自分の環境で動かしてみてほしい。 #define _XOPEN_SOURCE 500 #include <stdlib.h>

  • メモリ管理機能

    アプリケーションをメモリー上にマップしてプロセスとして実行状態にするのはOSの重要な仕事ですから当然知っています。linuxであればtopコマンドを使えば各プロセス(Linuxではプロセスのことをタスクと呼ぶことが多い)の実行状態を見ることができます。一方で、論理アドレスから物理アドレスへのマッピングやセグメンテーションやスワップなどの仮想記憶処理についてはそれぞれのCPUの仕様に依存するため、カーネルのバージョンや対応するCPUによって異なってきます。たとえばlinux2.6からはrmap(リバースマップ)を持っているので物理アドレスから論理アドレスをたどることができるようになりました。 各アプリケーションが使用するデータについては、プロセス間の受け渡しに関連するところ以外では、各アプリケーションに任されていますから一般にはOSの知るところではありません。しかし、メモリー管理機構は各アプ

    メモリ管理機能
    ad2
    ad2 2010/12/27
  • メモリ管理

    ◆ メモリ管理とは? UNIX では、どうやって複数のプログラムを実行しているのでしょうか? 具体的には、以下の3つの目標を実現する必要があります。 複数のプログラムを同時に実行すること。 物理メモリを効率良く管理すること。 あるプログラムの暴走や異常終了が他のプログラムの実行へ影響しないこと。 そのためには、メモリ管理機構にどのような機能が必要でしょうか? 物理メモリサイズより大きいサイズのプログラムを実行できること 理想的には任意のサイズのプログラムを実行できること 部分的にロードされたプログラムを実行できること プログラムのスタートアップ時間を減らすためにも 一度に複数のプログラムがメモリに存在できること プログラムをメモリ上の任意の場所(アドレス)にロードでき、 実行中に移動できること プログラムが再配置可能であること 物理メモリのサイズや構成に関係なく、プログラムを記述で