2008-04-01から1ヶ月間の記事一覧

大容量ファイルI/Oの効率について 其の弐

id:NyaRuRu さんからコメントでご指摘を頂き、再計測したのですが下のような結果が得られました。 FILE_FLAG_NO_BUFFERING 指定のない ReadFile() #FF0000;">-赤線-:リニアにアクセス速度が低下していく。FILE_FLAG_NO_BUFFERING の指定がある場合にはリニア…

大容量ファイルI/Oの効率について

数百GiBクラス以上のボリュームのデータを処理してると極端にパフォーマンスが落ちちゃう問題だけど、原因の一つは、どうも大容量ファイルI/Oの場合にはファイルマッピングだと効率が悪いことにある模様(環境やその他の条件にもよるのかもしれないけど)。推…

テストコードのテスト

テスト駆動開発(TDD)だのテストファーストだので、昨今はテストを自動化していく習慣が浸透していっているように見受けられますが、その際に「テストコードのテストはどうすんのよ?」的な話題までは出ても「テストコードもテストを必ずやらなければならない…

バグベアードを利用したプロファイリング

今現在、バグベアードを利用してプロファイリングをやろうなどと、輪をかけて馬鹿なことを考えているとこなんですが、実際のところ、いまのバグベアードに一切手を入れなくてもバグベアードによって出力されたログを解析するツールを用意するだけでプロファ…

Visual C++ 以外、volatile の扱いがダメダメな件について

C++

昨日、g++ での volatile の扱いが微妙に変 というエントリーを書いたわけですが、その後 volatile 修飾対応を進めていると g++ 以外のコンパイラについても volatile まわりの問題が噴出し、付き合ってられないので volatile 修飾対応は断念しました。コン…

簡潔主義

http://d.hatena.ne.jp/haru-s/20080414/1208187716#c1208268703 でも述べてますが、今の自分の設計スタイルは完全・完璧であることよりは簡潔であることに重きをおきます。simple であることが best だと思っているわけではありません(betterである...ぐら…

g++ での volatile の扱いが微妙に変

C++

スレッドセーフの定義では「基本的に複数のスレッドからアクセスするオブジェクトには volatile 修飾しません?」などとコメントしつつも、その実、ほぼ全ての自作クラスは volatile 修飾に全然対応してなかったよなぁと、反省し、volatile 修飾対応を始めた…

スレッドセーフの定義(其の弐)というかリエントラントの定義というか...

C++

http://ja.wikipedia.org/wiki/リエントラントリエントラントなコードはスレッドセーフであるほか、データを壊すことなく処理を一時中断することもできる。Wikipedia での定義によるとリエントラントなコードはスレッドセーフということになっており、これは…

if (0 == obj.size()) → if (obj.empty())

直感的に理解しやすいコーディングスタイルを心がけてるんで "0 == ..." っていうイディオムは直感的で気に入ってて obj.empty() よりも好んで使ってたんですが、残念ながら obj.size() を利用するのは時として obj.empty() を利用するよりもパフォーマンス…

スレッドセーフの定義

C++

# 茶々入れ、失礼。m(_ _)m > id:y-hamigaki[Hamigaki]設計方針「何を以ってスレッドセーフとするか明示していないライブラリは怖くて使えない!」と言いつつ、自分のライブラリに何も書いてなかったので設計方針をドキュメントに追加しました。確かにそ…

古いバージョンを元に Credential Provider 関連ドキュメントの日本語訳をやっていた件について

途中までやってほったらかしにしてた Windows Vista Credential Provider Samples Overview の日本語への翻訳を再開したとこだったんだけど、元ドキュメントが更新されてないかチェックしたら、探し方が悪かっただけで以前翻訳をやり始めた時点で既により新…

手旗信号ってデジタル光通信だよなぁ。

...とかアホなことを考えてて「TDK Science Museum:光通信の系譜」とかってページを見つけた。そんで、このページの情報で初めて知ったんだけど、同期オブジェクトの「セマフォ(Semaphore)」って手旗信号のことだったのね。

バグベアードを更新しました。

http://tricklib.com/cxx/ex/bugbeard/ 2008-04-01 以下の点を修正。 BUG_MASK_SOURCECODE の追加。 "悪魔の契約" の「構文の制限」に "例外仕様構文" に関する記述を追記。 BUG_MASK_SOURCECODE に関しては...このマクロが定義されているとステートメントハ…