タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとprogrammingとC++に関するpaellaのブックマーク (11)

  • Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった

    なお、メモリ消費量はtopコマンドで測ったので、かなり大雑把な数字だ。また、Cで同様の処理のコードを書くと、ほぼC++と同じ速度になる。 追記(2011/02/17 8:50):Rubyによるベンチマークを追加。 追記(2011/02/17 11:00):Smalltalkによるベンチマークを追加。ソースコードは「Smalltalkのtは小文字です」のループ回数を修正した。 追記(2011/02/17 16:00):Perlによるベンチマークを追加。 追記(2011/02/18 10:30):Java 1.6.0_22で実行した、Scalaによるベンチマークを追加。また、clang/llvmでC++とObjective Cの値を取り直し、改善が見られないのを確認。 追記(2011/02/18 14:30):Ruby 1.8.7によるベンチマークを追加。1.9.2との速度差については、@IT

    Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった
  • ポインタは用法用量を守って正しくお使いください - kikairoya’s diary

  • StringPiece というライブラリの話 - 兼雑記

    例えばこう、ディレクトリの名前とその中のファイル名を / でくぎって結合する関数を書くとします。引数が std::string でも使いたいし const char* でも使いたい、ということで、たいていは void JoinFilePathStr(const string& dir, const string& base, string* out) { out->clear(); out->append(dir); out->push_back('/'); out->append(base); }なんてのを書くんじゃないかと思います。この関数で問題になるのは const char* を渡すと不要な string object が一度できることで、敬虔な C++ 屋さんだと、 void JoinFilePathStr(const string& dir, const char* base,

    StringPiece というライブラリの話 - 兼雑記
    paella
    paella 2010/10/07
    文字列を実現する小型のクラス。便利そう
  • C++ における const の重要性と活用 - ニートの世紀

    const なんて知らないよ、という層の人間が一定世の中には存在するようです。 そういった人間の大多数の主張は恐らく「面倒くさい」「嫌い」とかだと思うのですが、const 性に気を配るのは C++ においてはメンバ変数を private にしないといけないことと同程度にやらないといけないことです。という話をします。 const というとまず真っ先に出てくるのは「値が変わらないことでコードが読みやすくなる」とか「参照透明性のため」とかで、参照透明とか言葉がすごく綺麗ですごいって感じだと思います。ボクは参照透明という言葉がすごく好きです。 でも C++ は現実の言語なので現実を見ましょう。そんなのどうだっていいんです。 前提として C++ はそれなりに速い何かを作るための言語である、ソースコードはコメントや何らかの形のドキュメントに勝る、という二点をあげておきます。 例えば巨大なオブジェク

    paella
    paella 2010/01/15
    C++は現実的だから、それぞれの現実が違うのが辛いところ。たとえばconstじゃない変数/関数に何か宣言を付けないといけないルールにしたら、世の中平和になるのでは?
  • Spaghetti Source - 各種アルゴリズムの C++ による実装

    ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基 テンプレート グラフ

    paella
    paella 2009/09/04
    これは良いサイト。
  • C++ でヘッダファイルだけでグローバル変数を定義する方法 - kazuhoのメモ置き場

    今日、会社で出た話。C言語だとグローバル変数を (宣言ではなく) 定義するには、必ずソースファイル内を書かなければいけなくて面倒だけど、C++ なら簡単。テンプレートクラスを使えば、ヘッダファイルだけでグローバル変数を定義できる。以下、参考。 なので、テンプレートクラスのstaticメンバは異なる翻訳単位で複数回定義されて いても、全く同じ定義ならば、一回しか定義されていないのと同義です。 cppll:8425 Re: クラステンプレートのstaticメンバ変数 具体的なコードとしては、以下のような感じ (picojson から一部変更して引用)。 template <typename AlwaysBool> struct last_error_t { static std::string s; }; template <typename AlwaysBool> std::string l

    C++ でヘッダファイルだけでグローバル変数を定義する方法 - kazuhoのメモ置き場
    paella
    paella 2009/07/28
    テンプレートの仕様のスキを突いたバッドノウハウ。
  • C++技術者の見極め方 - 地が傾いて舞が舞われぬ

    「俺Java6年やってます!」とか言われても正直よく分からないっていう話をしたところ、Java技術者の方々に「こういう質問をしてみれば?」っていうアドバイスをもらったのでご紹介。 capsctrldays(2008-10-14) 咳さんの最後のコメントがかっこいい。 C++ではどういう質問すればいいんだろうか。 「Effective C++」から何を学びましたか デストラクタにvirtualをつけているクラス宣言の意図がわかりますか。 STLとBoostで難しいと思ったテンプレートは何ですか クラスAから派生したクラスBがあるときそれぞれのコンストラクタとメンバ変数の初期化順序がわかりますか(逆にクラスBのインスタンスが解放されるとき、それぞれの解放される順序がわかりますか) Singletonパターンはどうやって実装しますか コピーコンストラクタと代入演算子の宣言があり定義がないクラス

    C++技術者の見極め方 - 地が傾いて舞が舞われぬ
    paella
    paella 2009/07/16
    C++エンジニアの技術者の見極め方(インタビュー)。ふふふ・・・殆ど分からないぞ orz
  • C++ のプログラムのデバッグを楽にする方法

    Google が公開しているソフトウェアの解説シリーズ(→その1 , その2)の続きです。今回は google-glog を使ってスタックトレースを表示する方法についてご紹介します。 C++ でプログラムを書いているとよく遭遇するのがセグメンテーション違反というエラーです。不正なアドレスへのアクセスなどによりセグメンテーション違反が起きると、通常、 UNIX 系の OS では SIGSEGV というシグナルによってプログラムが終了するとともに、 core というファイルが作られます。 core ファイルにはデバッガから参照できるいろいろな情報が残っていますが、多くの場合に役に立つのは、スタックトレースという情報です。スタックトレースを見れば、プログラムがどこでクラッシュしたのか、どのような関数を経由してそこにたどり着いたのかがわかります。プログラムがクラッシュした箇所を特定できれば、単純な

    C++ のプログラムのデバッグを楽にする方法
  • WEB+DBプレスの「[速習]レコメンドエンジン」のサンプルプログラムを訂正してみる - 遥かへのスピードランナー

    プリファードインフラストラクチャーのid:tkngさんと岡野原さんがWEB+DBプレスvol.49に「[速習]レコメンドエンジン」という記事を書かれています。 WEB+DB PRESS Vol.49posted with amazlet at 09.03.08 技術評論社 売り上げランキング: 359 Amazon.co.jp で詳細を見る レコメンドエンジンには前々から興味を持っていたので、早速サンプルコードを自分でも書いてみるか、と思い誌面のソースをXCodeに打ち込んで動かしていたのですが、コンパイルが通らない。 なにぶんC++なんてほとんど書いたことがないので、自分のやり方が悪いのかと疑ったのですが、代入する変数が間違っていたりミススペルがあったりなど、おそらくこれは誌面のソースが間違っているのだろうという結論に至りました。 例えば・・・ p130 リスト2より #include

    WEB+DBプレスの「[速習]レコメンドエンジン」のサンプルプログラムを訂正してみる - 遥かへのスピードランナー
    paella
    paella 2009/03/10
    WEB+DBを買っていないので、ごめんなさい、このソースから学ばせてもらいます。
  • 2008-10-01 - 兼雑記 ■[Program] デバッガとスレッドとイベント

    実行パスが一つしか無くて、ユーザやらネットワークやら、外部とのインタラクションもブロッキングして読んで問題ないようなプログラムならいいんですが、まぁなんかそうもいかないことも多く、そういう時はスレッドやら select/epoll やら使ってごにょごにょしてるわけです。でまぁ、あろはさんのとこのコメント欄を荒らさせてもらったんですが、まぁデバッガに欲しいスレッドやらイベントサポートの話。なんとなくもやもや思ってることを適当にまとめてみます。 まずまだマシなスレッドの方。まぁ適当に 100 スレッドくらいのスレッドプールの中の一つのスレッドが SEGV したとする。さあデバッガの出番。とりあえず適当に現在のスレッドの値を調べてみたところ、なんかおかしな値が入ってたとします。でまぁ、シングルスレッドでバグが無いとしたら、レースコンディションです。でそいう時にとりあえず、 thread appl

    2008-10-01 - 兼雑記 ■[Program] デバッガとスレッドとイベント
    paella
    paella 2008/10/01
    組込み業務でここまでのライブラリを整備できたら、かなり嬉しいんだけど・・・自分でも作れるかな?「何を意識すべきか」という点はこの記事に書いてあるので、何とかなるかも。ならないかも。
  • OBB vs AABB - Radium Software Development

    This domain may be for sale!

    paella
    paella 2008/06/11
    テストケースが膨大になるときの必要充分な組み合わせを導いてくれるプログラムの紹介。「ホワイトボックステストのケースをうまく減らす」という目的に、その考え方も含めて使えそう。
  • 1