SSブログ

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)のメモリが必要になるので不採用です。

べ、別に「エラトステネスのふるい」を知らないって訳じゃないんだからねっ!(ツンデレ風)

[車(セダン)] 今日の一冊
海賊たちの迷宮 (パズル冒険物語 異次元のカイト)

海賊たちの迷宮

  • 作者: 川崎 光徳
  • 出版社/メーカー: 誠文堂新光社
  • 発売日: 2004/12
  • メディア: 単行本

タグ:C++
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。