タグ

cに関するlesamoureusesのブックマーク (10)

  • mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場

    @ITに以下のような記事が出て、 今回からしばらくの間は、まったく逆の例、つまり使うとプログラムの処理性能が上がるというシステムコールを紹介していく。システムコールを呼ぶ回数は少ない方が処理性能は高くなるという原則は変わらないが、呼び出しておくと処理性能が向上するシステムコールというものが存在するのだ。こうしたシステムコールを使わないでいることは、とてももったいない。 今回紹介するシステムコールは「mmap(2)」だ。ここでは詳しく仕組みを解説しないが、mmap(2)は、プログラムの処理性能に必ず良い影響を与える。 やはりあった? 高速化に効くシステムコール (1/2):知ってトクするシステムコール(3) - @IT それを真に受けたのか、「Go言語でmmapシステムコールを使ったファイル読み込みの高速化検討とC言語のコンパイラの話 - ryochack.blog」のようなブログエントリも

    mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場
    lesamoureuses
    lesamoureuses 2013/10/11
    “正しいコードを書けば、シーケンシャルアクセスを行うケースにおいて read(2) が mmap(2) より大幅に遅いということは、まず起こらない。むしろ、read(2) のほうが mmap(2) よりも速くなるというケースも実際には多い”
  • C言語の文法「宣言は置換規則」 - 簡潔なQ

    最近思うんだけれど、C言語の文法って 「宣言は置換規則」 っていう発想がところどころみられるよね。 たとえば、古いK&Rの関数定義なら #include <stdio.h> /* funcの定義 */ char func(x,y) int x; double y; { return 'B'; } /* funcの利用 */ main() { int x; /* xはintに置換される */ double y; /* yはdoubleに置換される */ x = 1; y = 2.0; printf("%c", func(x,y)); /* func(x,y)がcharに置換される、と考えることもできる */ } それから、悪名高いポインタと配列の定義。 #include <stdio.h> #include <string.h> int main() { int ary[10]; /* なぜ

    C言語の文法「宣言は置換規則」 - 簡潔なQ
    lesamoureuses
    lesamoureuses 2009/11/24
    C言語忘れてて違和感なかった>C言語の文法って「宣言は置換規則」
  • C++ のコードを Flash Player で動かす! Alchemy を速攻試してみる。 - IT戦記

    はじめに Adobe から C/C++ で書いたコードを Flash や AIR で動かす Alchemy というものがリリースされましたね! Alchemy - Adobe Labs これはすごい!ということで、少し試してみたいと思います。 その様子をリアルタイムに書いていきます。ちゃんと出来るかな 環境 OS は Mac OS X で gcc 、 java は入っているものとします。 ホームディレクトリ(/Users/amachang)に AlchemyTest というディレクトリを作って作業します。 インストール まずは、いろいろインストールします。 Flash Player 10 Debugger Version Adobe Flash Player - Debug Downloads ここからダウンロードしてきて、普通にインストールします。 Flex SDK 以下から Flex

    C++ のコードを Flash Player で動かす! Alchemy を速攻試してみる。 - IT戦記
    lesamoureuses
    lesamoureuses 2008/11/19
    わけわからないから必要になったときに理解する
  • ApacheModuleでWebアプリケーションをつくろう:CodeZine

    1.はじめに Webアプリケーション開発の現場で使用されている開発言語には、JavaPerlPHP、最近であればRubyPythonなどがあります。この分野ではC言語も、CGIによるWebアプリケーション開発で旧来から用いられていますが、最近の開発者にはあまり馴染みがないかもしれません。当時の新技術であったJavaと比較して、あまりにも遅い結果が出ていたからとも言われています。 しかし、Webサーバの「Apache」、データベースの「PostgreSQL」「MySQL」、OSの「Linux」など、各所でオープンソースソフトウェア(OSS)の開発言語には、依然としてC言語が多く用いられています。このようにC言語は、Webアプリケーション開発の現場で使われるケースは減ったものの、現在でも重要な開発言語の一つです。 そこで今回は、Apache 2.2のmod_dbdで実装された「データベー

  • ウノウラボ Unoh Labs: gdbの使い方

    今年の2月にマカーになったbokkoです。どうも僕の使っているフォントがほかの人には見づらいらしく、「そのフォントはねぇよw」と言われたり、外付けのキーボードを使っているせいか、「MacBookの意味なし!」と社内で言われてたりしています。 今日はgdbのお話です。gdbは非常に広く使われているデバッガで、特にC、C++のプログラムをデバッグするのによく使われています。 デバッガの使い方 プログラムをデバッグする際、例えば以下の方法が挙げられます。 1. ソースコードを読む 2. ソースコードに出力関数を仕込む(例えばprintf) 3. ソースコードを書き換えて実行してみる これで十分な場合もありますが、そうでない場合もあります。これらの方法ではプログラムを実行している最中にこちらからソースコードレベルでのアクションを起こすことが難しいので、例えば、プログラムをある時点で止めて変数の

  • 第8回 ソースコードを追いかける | gihyo.jp

    最近のソフトウェアはconfigureスクリプトなどのおかげで、よほどのことが無い限りコンパイルエラーは発生しなくなり、「なぜコンパイルエラーが出るのか」「⁠どう修正すればコンパイルが通るのか」をソースコードレベルで調べる機会はほとんど無くなりました。 もちろん「コンパイルすらできないソースコードを公開した」というのは(スナップショット版ではいざ知らず)開発者にとっては最大級の恥辱なので、不完全なソフトウェアの公開を勧めるつもりは毛頭もありませんが、自らの経験を振り返ると、「⁠コンパイルするためにソースコードを調べて修正する」というのは、ソースコードを読むいい勉強になったように思います。 今回とりあげるのは、最近では珍しい「configureスクリプトは通ったのにコンパイルできなかったソフトウェア」の例で、実際にそのような状況になった際、何をどのように調べて原因や対策を考えたかの実例を紹介

    第8回 ソースコードを追いかける | gihyo.jp
    lesamoureuses
    lesamoureuses 2007/12/04
    ソースコードの読み方
  • 苦しんで覚えるC言語

    [全ページ目次] 苦しんで覚えるC言語(苦C)は、初心者を対象としたC言語入門サイトです。 C言語の基機能を体系立てて解説しており、市販書籍と同等以上の完成度です。 初めての人は 前書き から読み始めて下さい。 キーボードの矢印キーか、右下の進む>で次のページに移動します。 コンパイラ入手:基礎編:応用編:標準ライブラリ 全文検索:ダウンロード版:苦Cアンケート:ミス報告:掲示板で質問 [  更新情報  ] 01月22日 : Visual C++ 2005 Express Edition 10月30日 : Borland C++ BuilderX Personal 10月07日 : 掲示板に寄せられたQ&A項目を作成 03月10日 : ドラッグへの対応 ※ミス報告で報告されたミスの修正は約100回以上行っています。 苦Cについて 苦Cの使用法(特に読まなくても良い

    lesamoureuses
    lesamoureuses 2007/09/12
    c言語もう書かなそうだけどまたやり直す時用に。
  • プリプロセッサ

    マクロ C言語にはプリプロセッサ命令で、コンパイル時にコンパイラに命令を与えることができます 代表的なものが #include ですね これは、C言語そのものではなく、プリプロセッサに対する命令です これをプリプロセッサディレクティブと呼びます もうひとつ、頻繁に使用されるであろうプリプロセッサディレクティブがマクロ置換です マクロは定数に名前を与えるもので、C言語での開発効率を向上させます マクロの定義は#defineディレクティブで行います #define マクロ名 文字列 マクロ名にはマクロの名前を、文字列はそのマクロ名の内容を指定します マクロはコンパイル時にソースコードに置き換えられます これは内部フォーマットではないので、文字列と型はなんの関係もありません マクロ名と文字列の間には、必ず1つ以上のスペースを入れ一行完結です #include同様に、ステートメントではないのでセミ

    lesamoureuses
    lesamoureuses 2007/04/04
    __LINE__ : 現在の行番号とか__FILE__とか
  • clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション

    Emacs エディターで C 言語のプログラムを書く人向けに、入門用の解説がないように思う。そこで、知っておくと便利な機能をまとめてみた。 読者は、Emacs の操作とカスタマイズが最低限できる人を対象にしている。つまり、C-x C-f といったショートカット・キーが使えて、.emacs の設定ファイルがいじれる人。各機能について、基的な使い方とその効果、あと最低限の設定について書き出した。 目次 ソースの色付け インデント アラインメント コメント info マニュアル スペル・チェック タグ・ジャンプ 関数名の補完入力 コンパイルとエラー行ジャンプ ChangeLog ファイル 1. ソースの色付け Emacs は、C 言語のソース・ファイルを解析して、if や for といったキーワードに対して、自動で色を付ける。 色を付けることでソースにメリハリが生まれ、可読性が上がる。また、ス

    clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション
    lesamoureuses
    lesamoureuses 2006/12/19
    何となく使ってたから案外知らない機能がいっぱいだった。emacsすげー
  • 使いながら覚えるGDB

    はじめに プログラムのデバッグと言えばひたすらprintfを挿入しまくっていたある日、 デバッガなる便利な代物があるということを知った。なんでもプログラムを一行 ずつ実行できて、変数の値をその場で確認できるらしい。これは是非使ってみねばと 思い、UNIX環境で使えるGDBというデバッガを試してみた。が、何がなんだかさっぱり 分からない。Webを検索するとマニュアルの日語訳が見つかった。これで勉強すれば 使えるようになるかも、と読み始めるも、いきなりm4がどうのこうのだの、意味不明 の文章が続く…。 これは私がGDBを使い始めた時の話だが、似たような経験を持っている人が他にもいる と思う。 GDBのマニュアルは初心者にはすこし敷居が高い。 GDBに限らずマニュアルというものは初学者が参考書として用いるのには 適していない。というのも、マニュアルの類は情報量が多い分、重要な部分を 見つけ出す

    lesamoureuses
    lesamoureuses 2006/09/11
    軽いリファレンスっぽく使う
  • 1