タグ

cに関するakishin999のブックマーク (131)

  • select のなかみ - moriyoshiの日記

    一応 select(2) も読んであったので説明しとく。 メインループは非常に短いので抜粋。ここにはビットマップの転送処理は含まれていないので注意。max_select_fd() の前後が rcu_read_lock() と rcu_read_unlock() で囲まれているのは、ドキュメント (Documentation/filesystems/files.txt) によると 2.6.12 から RCU をファイルディスクリプタテーブルで利用するようになったため。以前は単なるロックだった。 int do_select(int n, fd_set_bits *fds, s64 *timeout) { struct poll_wqueues table; poll_table *wait; int retval, i; rcu_read_lock(); retval = max_select

    select のなかみ - moriyoshiの日記
  • epollのなかみ - moriyoshiの日記

    よく C10K 問題とかいって epoll(7) の話が出てきて select(2) 遅いね poll(2) 遅いねってなるんだけど、正直なところ、これらのシステムコールを実際に使ってコードを書いてみたひとはどのくらいいるのだろう。ましてや eventpoll が何やってるか知っている人はそんなに多くないんじゃないだろうか。もう O(n) だの O(1) だのって煙に巻かれるのもうんざりだ。 というわけで、2.6.26 の fs/eventpoll.c のコードを読んでみた。正直 Linux カーネルにすごく詳しいわけでもないので、誤りがあったら適宜突っ込んでもらえると幸いです。 前提知識として VFS モジュールがどうなってるかとかは LinuxのFSモジュールを書いてみる LinuxのFSモジュールを書いてみる (その2) のソース中のコメントを追ってもらえればと。 登場する構造体 e

    epollのなかみ - moriyoshiの日記
  • Debianがglibcの派生版「eglibc」を採用へ - @IT

    2009/05/07 Debian GNU/Linuxで、C言語の標準ライブラリである「GNU C Library」(glibc)が、その派生版である「Embedded GLIBC」(eglibc)に置き換わる可能性が出てきた。現在はまだDebianの開発版に入る前という段階だが、もし実現すれば、Debian系のディストリビューションであるUbuntuやKnoppix、Xandrosでも置き換わる可能性が高い。家ともいえるFree Software FoundationのGNU版のライブラリをさしおいて、派生版がDebianに入る可能性が高まったことで、ちょっとした波紋が広がっている。eglibcプロジェクトではglibcとの高い互換性を目標に掲げているものの、glibcは、Linux上のサーバソフトウェアを含む多くのアプリケーションが依存しているライブラリだけに、今後の影響範囲が見えづ

  • C言語の対話環境ccons - きりかノート 3冊め

    cfe-dev MLに流れていた「[ANN] ccons : an interactive console for C based on clang and LLVM」 http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-April/004960.html http://code.google.com/p/ccons/ http://fizzysoft.net/personal/ccons.pdf clang/LLVMを利用した、irbのようなC言語の対話環境"ccons"というプロジェクトの告知。名前は似てるけどsconsとはぜんぜん関係ない。 Cのインタプリタというのはこれまでにもあったけれど、clangのライブラリを使ってるのはたぶん初じゃないかな。さっきチェックアウトしたr165でtestディレクトリを除いたファイルの総行数が3,000程

    C言語の対話環境ccons - きりかノート 3冊め
    akishin999
    akishin999 2009/05/02
  • マイクロソフト vs. IBM — ありえるえりあ

    Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ

  • lsコマンドをハックしてみよう

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ショッピング事業部開発部の吉野です。 Yahoo!ショッピング開発部では新人エンジニア向けにコマンドのソースコードを読むことを奨励しています。 その初期の題材として、lsコマンドがよく挙げられます。 今回は「lsコマンドをハックしてみよう」と題し、lsコマンドについてお話しさせていただきます。 突然ですがエンジニアの皆さん、lsコマンドのソースコードを読んだことはありますか? 読んだことのない方はぜひ一度、目を通しておくことをおすすめします。 意外と知られていませんが、lsはcd,pwdなどのコマンドと違いシェルの組み込みコマンドではありません。 一口にlsと言っても、複数のソースコードが存在します。 代表的なのはGN

    lsコマンドをハックしてみよう
  • LispをCより速くする - リリカル☆Lisp開発日記

    ときどきの雑記帖経由で知った How to make Lisp go faster than C という論文が面白いです。 簡単な画像処理をCとCommon Lispで書いて速度を比べるというものですが、 CLの速度の劇的な変化が笑えます。 インタプリタで実行 -> Cの2300倍遅い コンパイルして実行 -> Cの60倍遅い 型宣言と最適化を付ける -> Cと同等の速度(一部に関してはCより速い) いくらなんでも最初より速くなりすぎだろwwww おまけに、最初のソースと最終的なソースの差はほとんど無く、 関数一つあたり、2,3行増える程度です。これは凄い。 あと、CMUCLの型推論がACLより優秀という話も面白かったです。 (defun mult (to from val) (declare (type (simple-array fixnum (*)) to from))

  • 個人利用、非商用なら高性能なIntelコンパイラが無償で使える : しげふみメモ

    2009年02月26日21:19 カテゴリLinux 個人利用、非商用なら高性能なIntelコンパイラが無償で使える 個人利用、非商用に限りますが、Intelコンパイラが無料で使えます。 IntelのCPUを使っているなら、そのCPUに最適化されたIntelコンパイラでコンパイルすると、一般的にパフォーマンスは良くなるようです。 最新のバージョン11.0は Core i7 や Atom プロセッサーもサポートしています。 4年ほど前の記事ですが、関連として以下のような記事もあります。 無料で30%のパフォーマンスUP!! - intel compiler :: Drk7jp ダウンロードは以下から。 Non-Commercial Software Development - Intel Software Network 同意できれば Accept のリンクから各プロダクトの非商用版の申し込

    個人利用、非商用なら高性能なIntelコンパイラが無償で使える : しげふみメモ
  • 2NT -無料ブログ 無料ホームページ 等-

  • 【ハウツー】Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (1) google-perftoolsとは | エンタープライズ | マイコミジャーナル

    google-perftoolsはGoogleによって提供されている、C/C++アプリケーションのパフォーマンスを改善するための開発ツールキットである。2005年3月に初めて公開され、およそ4年を経て7日に正式版がリリースされた。The BSD Licenseの下で提供されており、LinuxをはじめとしてFreeBSD、Mac OS X、Solaris 10、Windows XPなど、各種プラットフォームでの動作が確認されている(ただし、Linux以外については一部機能を除く)。 google-perftoolsには次に挙げる4つのツールが含まれている。 高速メモリアロケータTCMalloc ヒープチェッカー ヒーププロファイラ CPUプロファイラ TCMalloc(Thread-Caching Malloc)は通常のmallocよりも高速なメモリ割り当てを実現するライブラリであり、テスト

  • CでRの拡張したら速すぎて(40〜50倍)吹いたwww - yasuhisa's blog

    昨日Gibbs Sampler Algorithmをやってみたわけだが、Rの中でfor文を書いていて必要となるサンプル数が多くなると非常につらくなってくることは目に見えている。しかも、MCMCでは初期値依存となる期間のサンプルを捨てないといけない。そういうわけでじゃんじゃんサンプルを作っても大丈夫なような速度が必要。 Rで速度を上げようと思ったらapplyファミリーを使うとかベクトル単位での処理をするetcが常套手段*1。が、今回は質的にfor文が必要なケースである。 で、困るわけだがRにはC、C++、fortranを使って拡張する機能がある。詳しくはこの辺に載っている。そういうわけでCのポインタもアドレスも理解していないid:syou6162がRが好きすぎたためにCを書いてみたという感じの内容。 #include <R.h> #include <Rinternals.h> SEXP r

    CでRの拡張したら速すぎて(40〜50倍)吹いたwww - yasuhisa's blog
  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
  • よりそいプログラミングのすすめ

    ちょっと前の話なんですけれど,あたしが知ってる生身の人の中で,もっとも優秀なプログラマさんのコーディングを見せてもらうことがありました。知らないライブラリの使い方をたずねたのがきっかけなんですけれど,「ちょっと作ってみるから見てて」ってな話になったのでした。これがすごかった。 「よりそいプログラミング」というのは,ここで作った言葉で,単純に片方が寄り添う形で行うプログラミング方法です。片方がひたすらプログラミングして,それを傍から見るというモノ。ここで,似たような言葉のペアプログラミングは,もちろん製造工程の話だけれど,「よりそいプログラミング」は開発工程とは異なる,教育目的のプログラミングです。だから,生産性云々とかは,とりあえずさておいてください。 さて,そのプログラマさんのプログラミングを見ていたところ,とにかくペースがものすごい。傍から見ていると,言葉を出すのと同じ感覚で,考えたこ

  • 私的 Win32 API メモ - IT戦記

    いろいろ勉強した 忘れてしまいそうなので書き下しておく 雰囲気的なこと ウィンドウ 俗にいうウィンドウではなく、 GUI の部品全般(ボタンとか、ツールバー)も含む 俗にいうウィンドウは、フレームとか言う ハンドル ポインタみたいなもん HWND ウィンドウのハンドル DOM でいうと Node みたいなもん LPXXX XXX のポインタって意味 owner と popup 「ポップアップさせたウィンドウ = owner」と「ポップアップしたウィンドウ = popup」 DOM でいうと owner は、 window.opener で popup は、 window.frames って感じ HINSTANCE DLL とか EXE とかひとつと対応してるハンドル アプリケーションの HINSTANCE というと実行されている EXE のハンドル DLL や EXE のメモリ上の位置 H

    私的 Win32 API メモ - IT戦記
  • 「Cクックブック」 - 書評 - Unix/Linuxプログラミング 理論と実践 : 404 Blog Not Found

    2008年05月09日22:00 カテゴリ書評/画評/品評Lightweight Languages 「Cクックブック」 - 書評 - Unix/Linuxプログラミング 理論と実践 アスキー改めアスキーメディアワークスの鈴木様より献御礼。 Unix/Linuxプログラミング 理論と実践 Bruce Molay / 長尾高弘訳 C言語を通してUnix/Linuxの仕組みを学べる良著。Perl/Python/Rubyクックブックのレシピを、レシピを並べる(遅延学習的)のではなく、レシピの難易度順に並べ直して、実践を通して理論を学ぶことが出来るように仕立ててある。 書「Unix/Linuxプログラミング理論と実践」では、以下の目次のとおり、実際のUnixコマンドを「再発明」することで仕組みを学んでいく。 目次 - Unix/Linuxプログラミング 理論と実践にないのでBooksデータベー

    「Cクックブック」 - 書評 - Unix/Linuxプログラミング 理論と実践 : 404 Blog Not Found
  • On Loving C.. 日本語訳

    以下の文章は、Michael Feathers による On Loving C.. の日語訳である。 文中の固有名詞などについて理解の助けとなるよう Wikipedia へのリンクを加えさせてもらった。 認めなければならないことがある。私は C を愛している。しばらくはそれを意識していても、忘れがちだ。Ruby、Haskell、OCaml、C++Java、そして C# に心移りしたこともある――今も多くの言語に時間を割いているが、C の元に戻ってくると、私は故郷に帰ったような気持ちになる。 私は何十年も前に Kernighan と Ritchie のをパラパラとめくったときのことを覚えている。C にはとても欲求不満を感じた記憶もあるが、とても満足を与えてくれたことも覚えている。C にはヘンなところがあるが、振り返ってみると、それは多くの他の言語のヘンさに比べれば不可解なところはずっと

  • 「攻殻機動隊」「電脳コイル」の世界を実現! - ARToolKitを使った拡張現実感プログラミング

    仮想世界と現実世界を融合する技術は,拡張現実感(Augmented Reality:AR)と呼ばれています. おおげさな言い方をするとARは現実の世界に情報を「上書き」することができる技術です. アニメや映画にでてくる「電脳」を想像してみてください. 手のひらの上に3Dキャラクタを表示したり,現実の世界でデジタル・データに触れてみたり… そんな魔法のような技術です. ARToolKitは,ARアプリケーションの実装を手助けするC言語用のライブラリです. ARToolKitを使うと,紙に印刷されたパターンをカメラで読み取り, その上に3Dオブジェクトをオーバーレイ表示するアプリケーションが簡単に作れます. 来は非常に敷居の高い技術なのですが,このライブラリは「難しい部分」の処理を 全てやってくれます. …というわけで今回はARToolKitを使って近未来の技術 「拡張現実感」 を体験してま

  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
  • hogetrace - 関数コールトレーサ - memologue

    でかいソフトウェアの、大量のソースコードを短時間で読む必要が生じたので、その補助ツールとしてptrace(2)ベースのLinux用関数トレーサを自作しました。こういうツール上でまずソフトウェアを実行してみて、どのファイルのどの関数がどういう順で呼ばれるか把握おけば、いきなりソースコードの山と格闘を始めるより楽かなーと思いまして。せっかく作ったので公開します。 http://binary.nahi.to/hogetrace/ straceはシステムコールだけ、ltraceは共有ライブラリ(DSO)の関数呼び出しだけ*1をトレースしますが、このツールは、実行バイナリ中の自作関数の呼び出しもトレースします。例えば再帰で1から10まで足し算するソースコードを用意して % cat recursion.c #include <stdio.h> int sum(int n) { return n ==

    hogetrace - 関数コールトレーサ - memologue
  • さらに分かっておきたいトランジスタの種類 − @IT MONOist

    組み込みソフトウェア/ハードウェア開発における技術力の向上、改善・最適化などを幅広く支援する“組み込み開発エキスパート”のための情報フォーラム