最近、ときどき速すぎる新しいMacBook Proを購入しました。私は頻繁にMathematica用にプログラミングし、古い2007年のMacBook Proでは、動作が遅くなると非効率的なコードを感じることがよくありました(つまり、「ガベージコードを書いたのです。 ")。しかし、私の新しいMacでは、すべてが高速に動作します。
MacにCPUをたとえば1 GHzに減速させるスイッチがありますか?
最近、ときどき速すぎる新しいMacBook Proを購入しました。私は頻繁にMathematica用にプログラミングし、古い2007年のMacBook Proでは、動作が遅くなると非効率的なコードを感じることがよくありました(つまり、「ガベージコードを書いたのです。 ")。しかし、私の新しいMacでは、すべてが高速に動作します。
MacにCPUをたとえば1 GHzに減速させるスイッチがありますか?
回答:
マイクロプロセッサの電力、周波数、クロック速度の直接的な関係のため、最小クロック速度バーを操作することは不可能だと思います。明らかにクロックには範囲があるため、たとえばシミュレーションを実行する場合、システムは範囲内で高速に実行するためにより多くの電力を必要とし、シミュレーションを停止するとドロップが表示されます。
解決策:または、MAC OS内で仮想化プログラム(仮想ボックスなど)上でプログラムを実行することを検討しましたか?次に、2番目のOSの実行専用のコア/ RAMの数を制限できます。その場合、プログラムの実行速度をはるかに遅くすることができます。バーチャライザーのリソースがはるかに少ないためです。これにより、柔軟性が大幅に向上し、障害が発生した場合は、戻って仮想化設定を変更できます。さらに興味深いことに、バーチャライザーを使用することで、バーチャライザーで実行されるパッケージ化された設定を別のマシンに持ち込んで実行することもできます。
ソフトウェアの効率が心配な場合は、MacBookをフルスピードで実行し続けることができる、よりエンジニアリング指向のソリューションを提案します。
Mathematicaに組み込まれているプロファイラを使用します。これにより、低速のハードウェアでのみ動作するズボンの測定に頼ることなく、最も時間を消費する計算の部分を特定できます。
Blrflの答えで示唆されているように、プロファイリングはMathematicaコードが効率的かどうかを識別するためのより適切な方法です。ただし、実行速度を本当に遅くしたい場合は、Mathematicaプロセスの優先度を変更することでこれを実行できる場合があります。私はこれを試していませんが、これらのリンクの中に役立つ情報やソフトウェアが見つかるかもしれません:
Mac OS Xでプロセスの優先度を設定する方法はありますか?
Mac OS X(またはiOSなど)でプロセスを永続的に「拒否」する方法は?
Northern SoftworksによるAppriority(以前のRenicer)
ただし、これらの議論の一部は少し古いため、お使いのMacおよびOS Xバージョンで機能するものを見つけるために、さらに実験または検索する必要がある場合があります。また、Macで他の重い処理タスクを同時に実行するように設定すると、この手法がより効果的に機能することがあります(大きなビデオファイルの変換など)。
残念だけど違う。Macintoshコンピューターでクロック速度を変更することはできません。Windowsマザーボードと同じようなBIOSがないため、ユーザーがクロック速度を変更したり、I / Oをいじったりすることはできません。
これは主に、Macではこれらを手動で変更する必要がないためです。ハードウェアはすでに構築済みであり、OSはどのハードウェアに接続/接続できるかを認識しています。
はい、しかしそれはお勧めできません。クロック速度は、プロセッサの負荷、温度、電力の可用性などの多くの要因により、OSとプロセッサ自体によって制御されます。
バッテリーを10-20%に減らし、外部電源を切断し、ラップトップを最大動作温度である95F(35C)に加熱すると、プロセッサクロックの大幅な低下を含め、確実に低電力状態になります。背中の痛みに使用されるものなど、ラップトップの下にある小さな加熱パッドで十分な場合があり、冬の間は非常に快適です。
ただし、パフォーマンスチューニングには正しいツールを使用することをお勧めします。はい、古い環境をシミュレートして独自の内部クロックを使用できますが、使用しているソフトウェアには、作業のパフォーマンスを理解するためのクロック、タイマー、およびその他のツールがあります。数年後に再びアップグレードする可能性が高いこと、またはその間に異なるコンピューターとコンピューティングプラットフォームを使用する可能性があることを考えると、エミュレーターのような松葉杖を使用することは、長期的な解決策ではありません。
代わりに、組み込みのツールを使用することをお勧めします。定期的に使用すると、追加の労力をかけずにそれらを使用できるので、それらをすぐにソフトウェアに統合できます。