重要な部分を最適化する
効果の大きい箇所に修正を適用します
「重要な部分を最適化する」はCoddyKit上の無料Mojo Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMojo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Mojo Academyコースには全4レッスンが含まれています。
ホットパスだけを直す
プロファイラーが示した箇所に努力を注ぎます。ほとんど実行されないコードを最適化すると、時間を無駄にするうえ、誰も効果を実感できない速度向上のために複雑さを増やすことになります。
fnと型を使う
型付き引数を持つ厳密なfnにすると、Mojoは緊密で高速なコードをコンパイルできます。ホットな def を fn に置き換えることは、大きな効果を得る最も簡単な方法であることが多いです。
fn dot(a: Float64, b: Float64) -> Float64:
return a * bループの外に処理を移す
決して変化しない値は、ループの外に移します。繰り返し行われる計算を上に巻き上げると、反復ごとの無駄な処理を取り除けます。
var scale = compute_scale()
for i in range(n):
out[i] = data[i] * scale内側のループをベクトル化する
SIMDを使って、1ステップで複数の数値を処理します。数値を扱う内側のループのベクトル化は、Mojoでよく使われる効果の大きい最適化です。
冗長なコピーを減らす
不要なコピーにはメモリと時間がかかります。ホットなコードでは、大きなデータを複製するのではなく、値を借用するか参照で受け取ります。
より良いアルゴリズムを選ぶ
どんな細かな調整も、より賢いアルゴリズムにはかないません。O(n 二乗)のループを O(n) の方法に置き換えれば、ほかの修正をすべて合わせた効果を大きく上回ることがあります。
適切なデータレイアウトを選ぶ
連続していてキャッシュに適したレイアウトなら、CPUはデータを高速にストリーミングできます。メモリの配置方法は、計算内容と同じくらい重要なことがよくあります。
メモリトラフィックを減らす
データを計算処理の近くに置き、再利用します。メモリとCPUの間のトラフィックが少なければ、データ待ちによる停止も減ります。
変更するたびに計測する
調整するたびにベンチマークを再実行します。計測しなければ、その変更が本当に改善したのか、それともひそかに悪化させたのか分かりません。
十分なところで止める
わずかな改善を追い続けると、リスクと余計なコードが増えます。コードが速度の目標に達したら、そこで止め、読みやすさと正しさを保ちます。
コードを読みやすく保つ
高速なコードも保守できなければなりません。明快さを保てる変更を優先し、巧妙な工夫にはコメントを付けて、将来の自分にも理解できるようにします。
クイックチェック
どの最適化に時間を使う価値があるか考えてみましょう。
まとめ
重要な部分を最適化する方法を学びました。fnを使い、処理を巻き上げ、ベクトル化し、コピーを減らし、より良いアルゴリズムを選び、変更のたびに再計測します。🚀
AI チューターと学ぶ Mojo — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「重要な部分を最適化する」レッスンは無料ですか?
はい。「重要な部分を最適化する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Mojo Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Mojo Academyコースには全4レッスンが含まれています。
「重要な部分を最適化する」で何を学びますか?
効果の大きい箇所に修正を適用します ブラウザで直接実行するハンズオンコードでMojo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Mojo Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのMojo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「重要な部分を最適化する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このMojo Academyレッスンでコードを書いて実行できますか?
はい。すべてのMojo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 計測とベンチマークツール
- 本当のボトルネックを見つける
- 重要な部分を最適化する
- プロファイルレポートの読み方