タグ

Cに関するmatsutakegohan1のブックマーク (39)

  • 【ハウツー】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よりも高速なメモリ割り当てを実現するライブラリであり、テスト

  • Linus「C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが 簡単に生産されるようになってる」

    /15 [4] (21:54) 原文: http://lwn.net/Articles/249460/ From: xxx To: xxx Subject: Re: [RFC] builin-mailinfo.c をマシな文字列ライブラリを使うようにすること Date: Thu, 6 Sep 2007 18:50:28 +0100 (BST) Message-ID: <alpine.LFD.0.999.0709061839510.5626@evo.linux-foundation.org> On Wed, 5 Sep 2007, Dmitry Kakurin wrote: > > Git のソースコードを最初に見たとき、ヘンだと思ったこと: > 1. 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戦記
    matsutakegohan1
    matsutakegohan1 2008/11/20
    過去の資産を使いまわせるというメリットがあるのかな?
  • PHPのソースコードをC のコードに変換する:phpspot開発日誌

    SourceForge.net: BinaryPHP BinaryPHP is a PHP To C converter which will convert PHP scripts into C equivalents ready to be compiled using any ANSI compiler. PHPのソースコードをC++のコードに変換するBinaryPHPの紹介。 token_get_all関数によってPHPのコードをトークンごとに分割してゴニョゴニョやって変換してるみたいです。 PHPC++のコード変換を実際に使うかどうかは微妙かもしれませんが、どういう仕組みで変換しているかを調べるのはなかなか楽しいです。 token_get_allのようなトークン処理用の関数が標準(4.3.0以降)で備わっているところがPHPのすごい所ですね^^; token_get_all -

  • C++で読むデザインパターン(Design Patterns read by C++)

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][design][programming][library]
  • ほげめも: gdb hacksアーカイブ

    gdb hacks 第 6 回。前回は IA-32 で gdb がデバッグレジスタをどのように活用しているかを見ました。今回はデバッグレジスタをプロセスが自分自身で利用する方法について考えてみます。

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][gdb][dev][programming][いつか読む]
  • memccpy() で文字列をコピーする - bkブログ

    memccpy() で文字列をコピーする 詳解Unixプログラミングを読んでいたところ、標準入出力ライブラリの章に「この例からわかることは、行単位の関数は memccpy(3) を用いて実装されていることである」という記述がありました。 一瞬、memcpy(3) の誤植かと思いましたが、調べてみると 4.3 BSD で追加された関数ということがわかりました。 glibc に入っているので Linux でも使えます。 マニュアル によると memccpy() は次のような関数です。 書式 void *memccpy(void *dest, const void *src, int c, size_t n); 説明 memccpy() はメモリ領域src からメモリ領域dest に最大でnバイトコピーする。nバイトコピーする前に文字 c が見つかると、そこでコピーを中止する。 返り値 memc

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][programming][BSD]
  • cscope: 対話的な C プログラムの検査

    第 9 章 cscope: 対話的な C プログラムの検査 cscope は、C、lex、または yacc のソースファイル内のコードの特定の要素を探し出す対話型プログラムです。cscope ブラウザを使用すると、従来のエディタよりも効率的にソースファイルを検索、編集できます。これは、cscope が関数呼び出し (関数がいつ呼び出され、いつその関数を実行するか) についてと、C 言語の識別子と予約語を理解しているためです。章は cscope ブラウザについて説明します。 この章は、このリリースに付属している cscope ブラウザの使い方を学ぶための資料として利用できます。説明項目は次のとおりです。 「cscope プロセス」 「基的な使用方法」 「不明な端末タイプのエラー」 cscope プロセス cscope は、C、lex、yacc のソースファイルを読み取り、ファイル内の関

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][tips][reference]
  • DNA - フリーソフトウエア - ccache

    ccache はコンパイラキャッシュである。 C や C++ コードをコンパイルした結果を保存しておき、同じコンパイルが行なわれるのを検知し再利用することで、再コンパイルするときの速度を上げる。 典型的な使用手順 ccache を単独で使うことはほとんどなく、通常 make と組み合わせて使用する。 開発中など、何度も利用するソースコードに使用すると特に効果的である。 逆に一度しかコンパイルしないときには使う意味がない。 使うときにはコンパイルコマンドの前に ccache をつける。 $ make CC="ccache cc" 使用するコンパイラを指定したい場合には cc の部分を適当に変える。 一度コンパイルした後、再び同じコードをコンパイルするときにはキャッシュされた結果が使用される。 例えば、以下の場合、二回目の make ではキャッシュされた結果が使用される。 $ make CC=

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][cache]cのコンパイルの際に、一度コンパイルしたものについてキャッシュを作ってくれるので、次以降のコンパイルが楽になる。
  • GNU Global source code tagging system

    Copyright (c) 2000-2023 Tama Communications Corporation GNU Global is a source code tagging system that works the same way across diverse environments, such as Emacs editor, Vi editor, Less viewer, Bash shell, various web browsers, etc. You can locate various objects, such as functions, macros, structs, classes, in your source files and move there easily. It is useful for hacking on a large projec

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][development][php][programming][search][source][tool][gnu]ソースをあとでブラウザで読みやすく
  • TAKESAKO @ Yet another Cybozu Labs: ニコニコ動画勉強会に行ってきました

    日ドワンゴさんの会議室にてこっそり開催されたニコニコ動画勉強会に参加してきました。 日の動画コメントサービス「ニコニコ動画」の裏側をドワンゴの開発者の方から 直接お話しを聞いて、参加者も一緒に意見交換ができる非常に面白い勉強会でした。 ドワンゴさんとしては会社で行なう技術者向けの勉強会初めての試みということもあり、 まずは開発者の知り合いベースで声をかけあって少人数で開催することにしたそうです。 六木のクラブの人や、バイナリカンファレンスでご一緒した人とこんなところで お会いできるとは思っていませんで、さまに想定の範囲外でした。 その甲斐あって密度の濃い話ができたと思います。 以下、自分用のメモを公開できる範囲で書きます。間違っていたらすみません。(ご指摘いただければすぐに訂正します) ■ニコニコ動画の苦労話 (Sさん) ニコニコ動画の歴史 2006年10月 一人でプロトタイプを開発

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][dev][development][flash][MySQL][php][presentation][scalability][server][system][webservice][nicovideo][movie]
  • C(++)言語: valgrindの使い方 (memcheck)

    (2-1) Memcheck: メモリエラーを検出する Memcheckが検出出来るエラーには以下のようなモノが有る。 メモリリーク 初期化されていない値の使用 freeされた領域へのアクセス mallocされた領域より後の領域へのアクセス 不正なスタック領域へのアクセス malloc/new/new []とfree/delete/delete []の対応の不一致 memcpyでsrcとdestの領域が被っている (2-1-1) Memcheck: メモリリーク static char *s; void leaking(void) { s = (char*)malloc(100); s[0] = 'a'; } int main(void) { leaking(); leaking(); leaking(); } ==29024== LEAK SUMMARY: ==29024== defin

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][dev]
  • メモの日々

    ■ [hard] キヤノンのプリンター MF272dw を買った 7年前に買ったHPのプリンターの調子が悪く、ページの一部分がかすれたり滲んで印刷されるようになってしまった。なので、去年末に新しいプリンターを買った。 買ったのは MF272dw という複合機タイプのモノクロレーザープリンターで15860円。 HPのプリンターは悪くなかったが、カラー印刷は不要でレーザープリンターを試してみたくなりこれにした。 今までのものより底面積は小さいが、高さが高く大きい。また、使用時には下部を開いて給紙カセットが飛び出すようになり場所をとることに注意が必要。 コピーやスキャンの結果はHPの方が奇麗だったように感じた。 ■ [unix] procfsからパイプへ割り込む Linuxでは /proc/[PID]/fd でプロセスが開いているファイルディスクリプタの情報を参照できる。 例えば、次のコマンド

    メモの日々
    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][dev][vim]gtags vimの設定とキーマップ
  • メモの日々(2007-05-23)

    ■ [vim] gtags.vimを使う 関数の参照元にジャンプできるようにしたくて、GNU GLOBALを使ってみた。 yumでglobalパッケージをインストールすると /usr/share/gtags/gtags.vim ができたので、これを ~/.vim/plugin/ にコピー。使い方はこのスクリプトの最初に書かれている。そこに、 " Suggested map: " map <C-]> :GtagsCursor<CR> とあるんだけど、こうしても Ctrl-T で戻ることはできないし、ヘルプなどでタグジャンプができなくなってしまうのでよくない気がする。で、vimでgtags(global)を使うの真似をして .vimrc に map ^_ :Gtags -r <C-R><C-W><CR> map ^? :GtagsCursor<CR>W と書いてみた。Ctrl-7で関数の使用箇

    メモの日々(2007-05-23)
  • http://www.doumo.jp/postgretips/tips.jsp?tips=66

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][stl][map]
  • STL超入門

    Last update 1999/08/07 STL超入門 (C)平山直之 無断転載は禁止、リンクはフリー 誤字脱字の指摘は歓迎 はじめに STLの知名度が意外と低いので、啓蒙のためにSTL入門を書くことにします。普段双方向リンクリストや動的配列のコードを書くのに飽きている人は、読んでみてください。絶対使ったほうがラクですから。 こんな人が対象 STLはC++の「テンプレート」という機能を使っていますので、普段C/C++コンパイラをCコンパイラとして使ってる人も、C++コンパイラとして使わなければなりません。STLをただ使うだけなら大して難しくはないので、C++をbetter Cとして使うのもよいかと思います。これ以後もそのような前提で説明します。よく分からないことがあったら掲示板で質問してください。 ※要するにCが解っている人向け※ STLの目的 STLとは、動的配列や双方向リンクリスト

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][library][programming][reference][stl]
  • IPA セキュア・プログラミング講座

    IPA 独立行政法人 情報処理推進機構 セキュリティセンターによるセキュア・プログラミング講座:Webアプリケーション編 & C / C++言語編

    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][programming][security][web][education][ipa]
  • http://www.au.ioccc.org/years.html

    matsutakegohan1
    matsutakegohan1 2008/06/30
    []邪悪なcのコーディング
  • C++アプリケーションの効率的なテスト手法(CppUnit編) ― @IT

    第2回 C++アプリケーションの効率的なテスト手法(CppUnit編):連載 C++開発者のための単体テスト入門(1/4 ページ) 連載目次 前回は単体テストの重要性を示し、従来のC/C++でのテスト手法であるprintf関数やassertマクロを使ったテストを紹介しました。この2つのテスト手法は開発環境(コンパイラとライブラリ)さえあれば利用でき、その使い方も簡単です。しかしながら、いずれも系統立てて、効率よくテストを行うには力不足の感が否めません。 今回は、Visual C++ 2005 Express Editionを含むVisual Studio 2005(以後、VS 2005)で利用できる代表的な単体テスト・フレームワーク(Unit Test Framework)の1つである「CppUnit」を紹介します。 ■単体テスト・フレームワークとは? 前回、「バグは早期発見が望ましい。早

    C++アプリケーションの効率的なテスト手法(CppUnit編) ― @IT
    matsutakegohan1
    matsutakegohan1 2008/06/30
    [][][column][dev][development][programming][tdd][test][Testing][tips][unittest][cppunit]
  • Super Technique 講座〜シグナルとコールバック

    この文書ではまず、関数ポインタとその型チェックについて述べた後で、UNIXのシグナル機能について解説する。そして、ウィンドウシステムのプログラミングで多用される「コールバック」について解説する。 ちなみにシグナルの機能は質的には UNIX に固有である。他のOSにもないわけではないが、その異同については筆者は関知しない。また、UNIXでのシグナルの実装については Linux を基準に解説をしていく。UNIX シグナルは、実は具体的な実装において大変差がある機能なのだが、一応 POSIX で「こう実装しなさい」という風に決まってはおり、後発の Linux は比較的マジメにそれを実装しているので、まあ、Linux を基準にするのが無難というものであろう(ユーザ比の問題を別にしても)。勿論、伝統的に重要ないわゆる「SysVシグナル」「BSDシグナル」についてもしっかりと解説しているが、もはや「