単純なドキュメントまたはWebページを開くと、コンピューターにあるすべての貧弱なリソースを食い尽くしていたため、非常に遅いという古き良き時代を覚えていますか?そして、今日、プロセッサが数百倍高速であり、数千倍のメモリにアクセスしているにもかかわらず、同じことをするのはさらに遅くなりますか?
現在のドキュメントビューアーおよび同様のアプリケーションでの肥大化の影響をシミュレートするには、より強力なマシンで実行したときに目に見えるパフォーマンスの問題があるプログラムを作成します。
すべての人に共通のタスクを持たせるには、それを素数ジェネレータにします。
- このプログラムは、2から始まる新しい素数の連続する素数を印刷しなければなりません。これは永久に(またはメモリ不足になるまで)する必要があります。このような:
2 3 5 7 11 13 17
各行の印刷には、人間が認識できる程度の遅延が必要です。
この遅延は、プログラムが実行されているマシンが高速になるほど長くなります。マシンが速いほど、プログラムは遅くなります。
主観的になる可能性があるため、正確なベンチマークを指定しませんが、2台のマシンのパフォーマンスに大きな違いがある場合、2台の異なるマシンで人間が知覚できる速度の違いがあるはずです。
プログラムの速度は、これまでに作成されたすべての既存のマシンで単調に減少する必要はありません。これは特定するのが難しく、検証するのはさらに困難です。マシン間で大幅に異なるパフォーマンスと見なすことができるものについて、出場者の常識を信じており、それで十分です。
また、正確な上限または下限を指定しませんが、妥当な制限内である必要がありますので、2行を印刷する間で日数または年数を指定しないでください。
Eniacから現代までのすべてで実行する必要はありませんが、たとえば2つの特定のCPUタイプでのみ動作し、特定の1つのCPUの名前を具体的に検出することは許可されません低速または高速で実行されます。
コードはコンパイラーまたはインタープリターのバージョンに依存するべきではありません。同じバージョンのコンパイラ/インタープリターが低速マシンと高速マシンの両方にインストールされている場合、またはバイナリ/バイトコードが1台のマシンでコンパイルされてから2台の異なるマシンで実行されている場合でも動作します。
プログラムの動作原理を説明してください。結果を再現するのは難しいため、回答の有効性はメソッドの実行可能性に依存する場合があります。
残念ながらこのサイトは「プログラミングパズルとコードゴルフ」ではなく、単に「コードゴルフ」に過ぎないため、最も短いコードが勝ちます。