1

私はプログラミングが初めてで、MIT の 6.00 を使用しています。動的プログラミングの講義を見ていると、単純な疑問が浮かびました。繰り返しのタスクを検出して補正するための (一般的なコンピューター用の) 組み込み機能はありますか?

私はそれが非常に曖昧であることを認識しています。祖父が遅いと不平を言っていたので、私は祖父のコンピューターで作業していました。実際、一度に最大 15 秒遅れたり、プログラムが開くのを待ったりしていました。RAM をアップグレードすると、問題はなくなりました。では、コンピュータが常にページ インとページ アウトをディスクに書き込む必要がある場合、RAM のアップグレードを提案する小さなメッセージを表示できなかったのはなぜでしょうか? それはかなりの時間を節約するでしょう。

コンピューターはタスクをすばやく実行するのが得意ですが、遅いコードは、まあ、遅くなる可能性があります。それは自動化できますか?これは正当な質問ですか?

4

2 に答える 2

0

一般に、コンピューターが処理の遅さの原因が、基本的に完了までに時間がかかる操作を実行しているためなのか、それとも実際に必要以上に時間がかかっているためなのかを知ることは不可能です。

また、操作が遅いことがわかったとしても、遅い理由を正確に診断することはさらに困難です。より多くの RAM が必要な場合もあれば、ネットワークが遅い、ディスクが遅い、CPU が遅い場合もあります。チェッカーが実行されているのと同じマシン内でチェッカーが実行されている場合、チェッカー自体も速度低下を経験しているため、これはさらに困難です。

ただし、特定の限られた状況下で実行できることがいくつかあります。多くの一般的な OS (Windows、Linux、Android など) は、ユーザー入力に対する応答の遅さを検出でき、より多くの時間を与えるか、アプリケーションを強制的に閉じる (Android) か、応答していないウィンドウをグレースケール (Linux) または青みがかった色合いで描画します。 (Windows)、アプリケーションが一定時間内にユーザー入力に応答しない場合。

于 2012-11-29T18:20:52.893 に答える
0

説明した例では、ディスクへの読み取り/書き込みであるため、コードは遅くありません。実際には何もしていませんが、代わりにOSがディスクにページインおよびページアウトするのを待っているため、遅いです。

また、RAM のアップグレードが常に頻繁なページングの解決策になるとは限りません (たとえば、バグのあるプログラムがメモリをリークするなど)。

一般的な意味で、考えられるすべての問題を OS が検出して解決策を提案することは実際には不可能です。これは、実際には停止問題のバリエーションです。

于 2012-11-29T17:53:36.200 に答える