タグ

最適化に関するmae0510のブックマーク (6)

  • 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++の最適化
  • Flashで吹雪のごとき描画を実現するチューニング3策

    Flashで吹雪のごとき描画を実現するチューニング3策:速いFlash/ActionScriptチューニング入門(2)(1/4 ページ) Flash/ActionScriptチューニングの基礎知識から実践的テクニックまでを紹介する連載。読みながら試せるオンライン・サンプルもあります。Adobe AIR/Flexにも応用可能です Flash高速化は、ASの知識有無にかかわらず 連載第1回の「Flashを閃光のごとく高速化するための基礎知識」では、実際のチューニング方法を語る前準備として、「どの処理に、どれだけ時間・リソースが割かれているか」、つまり“処理負荷”を調べる具体的な方法を紹介しましたが、あれから1カ月ちょっと経過しました。すっかり季節も変わり始めてしまいました。時がたつのは、速いものです。 今回から、実践的なチューニング手法の解説が始まりますが、プログラムが不要なものから必須なもの

    Flashで吹雪のごとき描画を実現するチューニング3策
  • ActionScript3 最適化・高速化Tips 簡易まとめ - actionscriptグループ - ConquestArrow.addEventListener( LifeEvent.WORK, this.studyActionScript);

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    ActionScript3 最適化・高速化Tips 簡易まとめ - actionscriptグループ - ConquestArrow.addEventListener( LifeEvent.WORK, this.studyActionScript);
  • 最適化の為のアセンブラ入門

    現在、アセンブラを使わなければならないという状況はあまりありませんが、最適化をする場合はアセンブラを知っている方がなにかと有利です。特に、コンパイラの吐いたコードを吟味することはとても重要です。よってここでは、アセンブラコードを読む能力と、簡単なアセンブラコードを書く能力を身に付けることを目標とします。 この記事は Windows 上で VC++ を使う場合を想定して書いていますが、BCC でも殆ど同じですし、gcc でも少し書き方を変えれば使えます。Intel のプロセッサ上で動く Linux 等でも基的な部分は同じですし、命令セットの異なるプロセッサでも、基的な部分は役に立つと思います。ターゲットは Intel Pentium 系プロセッサです。 第0回 アセンブラってどういうもの? 第1回 代入と基的な演算 第2回 定数とメモリの扱い 第3回 レジスタについて 第4回 分岐命

  • 1