CPUに負荷をかけるプログラム [投げっぱなしツール]
とあるシステムが、おかしな動作をするようになりました。
同じ操作をしているのに正常に動いたり、動かなかったりするので、原因がよく解らなかったのですが、色々と試したり妄想したりした結果
「CPU負荷が高い時に失敗しやすい」
様な気がしてきました。
そこで、わざとCPUに負荷をかけて再現性を検証しようと、CPUに負荷をかけるプログラムを作ってみました。
以下に全ソースコードを公開。
#include <iostream> #include <cmath> bool is_prime(unsigned int a) { if (a <= 1) return false; if (a == 2) return true; if (a % 2 == 0) return false; for (unsigned int i = 3; i <= sqrt(a); i += 2) { if (a % i == 0) return false; } return true; } int main() { unsigned int i = 0; while (true) { i++; if (is_prime(i)) std::cout << i << std::endl; } return 0; }
延々と素数判定をするプログラムです。
しかもベタな素数判定で。
落ち着くためには、素数を数えるのが一番です。
それ、違っ
「エラトステネスのふるい」は、32bitで表現可能な全整数(0~4294967295)を対象にすると、4Gbit(512Mbyte)のメモリが必要になるので不採用です。
べ、別に「エラトステネスのふるい」を知らないって訳じゃないんだからねっ!(ツンデレ風)
今日の一冊 | |
|
タグ:C++
2009-08-13 10:30
nice!(0)
コメント(0)
トラックバック(0)
コメント 0