検索結果 3 件

by 黒崎圭一
8年前
フォーラム: C言語何でも質問掲示板
トピック: C/C++ 実行速度
返信数: 5
閲覧数: 4799

Re: C/C++ 実行速度

黒崎さんが書いているような最適化の定石についてですが、 コンパイラを作っているプログラマも、そのような定石の大半を知っていると思います。 おっしゃる通りですね。 私から述べた最適化テクニックは基本的なことであって、 普通はVisualStudioでサポートされてる最適化オプションを使ったら何の意味も持ちません。 重要なのはプログラムの作成スタイルというより メモリーへのアクセスを如何に効率的に行うかです。 ゼロからコードで作られたメモリースペースなら何の違いも見出せませんが、 特定のデータ(画像や動画、バイナリデータなど)を扱う時はその限りではありません。 扱うデータがどういう仕組みになって...
by 黒崎圭一
8年前
フォーラム: C言語何でも質問掲示板
トピック: C/C++ 実行速度
返信数: 5
閲覧数: 4799

Re: C/C++ 実行速度

すみません。二番の説明が不足していたと思いますので追記します。

つまり、以下のようなコードより、

コード:

int n =0;
for(n = 0; n<100; ++n);
こうして作成した方がいいということです。

コード:

for(int n=0; n<100; ++n);
これは、事前に宣言した変数のメモリーのアドレスまで行くより
新しく宣言した変数を利用した方が少しだけ早くアクセスできるためだそうです。

ではでは…
by 黒崎圭一
8年前
フォーラム: C言語何でも質問掲示板
トピック: C/C++ 実行速度
返信数: 5
閲覧数: 4799

Re: C/C++ 実行速度

こういうのはどうでしょう。 int* dd = new int[100]; memset(dd, 0, sizeof(int)*100); int* pArray = NULL; start = clock(); for (int n = 0; n < 100000000; ++n) { pArray = &dd[0] - 1; int i = 0; do *(++pArray) = i + n; while((++i)!=100); } end = clock(); 自分のパソコンでは、載せていただいたコードで28秒、 上記のコードで19秒くらいかかりました。(CPUが旧世代のi7-2600...

詳細検索ページへ移動する