タグ

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

  • 関連タグはありません

タグの絞り込みを解除

C++と最適化に関するmae0510のブックマーク (3)

  • RVO/NRVOペロペロ

    プログラム関連の話題を混ぜればアクセスが増えるって気付いてしまった。 ・・・からではないけど。 ま、それ以上にアニメ関連の最近の話題を絡めたほうが伸びるんだけど。 べつにアクセス気にして更新してる内容でもないのでどっちでもいいけどね。 「あずにゃん すじ」で飛んできた人がいて、もうホント、大好きだお前ら。 盛大に吹いた。 残念ながらこのブログにはスジなんてないけど、まぁ楽しんでくれたまえ。 今回はプログラムの話。 で、タイトルのRVO/NRVOなんだけど。 詳細はググれ。 class Azunyan { public: Azunyan(){ std::cout << "constructor" << endl; } Azunyan(const Azunyan&){ std::cout << "copy constructor" << endl; } ~Azunyan(){} }; Azun

  • RVO,NRVOのテスト - 自己否定回路 〜駄目サークルの駄目Blog〜

    【環境】Visual Studio.NET 2003/ WindowsXP Pro. 折角やったので自分のためにもネタにしやすい部分を記録として残しておきます。 RVO(Return Value Optimization)とは値渡しでオブジェクトを返す関数において関数内で生成され計算される一時オブジェクトを生成せずに、戻り値となる一時オブジェクトに直接を計算をしようという最適化です。これにより一時オブジェクトの生成を1つ減らすことができ汎用される関数においてはパフォーンマンスの向上が見込めます。と、書いても分かりづらいので例を出します。通例、加算演算子は次の様に定義されます。 const Complex operator +( const Complex &lhs, const Complex &rhs ){ //…(1) Complex temp(lhs); lhs += rhs; re

    mae0510
    mae0510 2011/01/23
    へー
  • diary

    最近とあるソースをみて思ったことをだらだら書いてみます. [チェックをしっかりしてないので中身はいい加減です] No. 001 float func1(float a, float *buf, int n){ int i; float x = 0; for(i = 0; i コンパイラの最適化を期待しているのかも知れませんが、普通毎回割算してくれます. なんだかなあ, です. 当たり前ですが float func1a(float a, float *buf, int n){ int i; float x = 0; for(i = 0; i とかくべきですよね. No. 002 float func2(float a, float *buf, int n){ int i; float x = 1; for(i = 0; i こんなのもあり

    mae0510
    mae0510 2010/10/31
    C++の最適化
  • 1