So-net無料ブログ作成
検索選択

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