Mojo Academy · レッスン

Mojoらしいコーディング習慣

デフォルトで高速に動作するコードを記述します

レッスン 4/413 ステップ

「Mojoらしいコーディング習慣」はCoddyKit上の無料Mojo Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMojo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Mojo Academyコースには全4レッスンが含まれています。

デフォルトで高速にする

最高の速度は、最後の土壇場の工夫ではなく、普段の習慣から生まれます。慣用的なMojoは、最初の草稿から高速に動くように書かれます。🚀

ホットパスではfnを優先する

頻繁に実行されるコードではfnを使いましょう。必須の型情報によって、プログラムの中でも特に重要な部分をコンパイラが最適化できます。

fn dot(a: Int, b: Int) -> Int:
    return a * b

型を注釈する

値と引数の型を明示してください。それぞれの注釈が実行時の推測を1つ減らし、Mojoによる高速なマシンコードの生成を助けます。

var total: Int = 0
var ratio: Float64 = 0.5

varで宣言する

varを使って、fnコード内の変数を明確かつ明示的に宣言しましょう。予測可能なスコープは、コンパイラと次に読む人の両方に役立ちます。

fn run():
    var n = 10
    print(n)

値セマンティクスを活用する

Mojoの値セマンティクスは、予期しない共有を防ぎます。値にデータを所有させれば、防御的なコピーをしなくてもコードの正しさを保てます。

読み取りには借用を使う

大きな値を読むだけの場合は、借用して渡してください。コピーを避けながら、元の値を安全かつ変更されない状態に保てます。

fn show(borrowed data: Int):
    print(data)

数値計算をベクトル化する

要素ごとの計算にはSIMDを使い、CPUが一度に1つのスカラー値を処理するのではなく、1命令で複数の値を処理できるようにしましょう。

var v = SIMD[DType.float32, 4](1, 2, 3, 4)

適した場所ではPythonを再利用する

相互運用によって成熟したライブラリを使い続けつつ、橋渡しは必要最小限にしましょう。重いループはMojoで実行し、Pythonが得意とする部分はPythonに任せます。

from python import Python

調整の前に測定する

まずプロファイルを取り、実際のホットパスを最適化してください。推測に頼ると、実際には速度低下の原因でなかったコードに労力を使うことになります。

ループを簡潔に保つ

セットアップと割り当てはループの外に移しましょう。余計な処理のない簡潔な内側のループが、コンパイラにとって最も最適化しやすい形です。

var buf = List[Int]()
for i in range(100):
    buf.append(i)

読みやすさは速度を損なわない

慣用的なMojoは、明快であると同時に高速です。優れた習慣によって両方を実現できるため、速度のために可読性を犠牲にする必要はほとんどありません。

クイックチェック

Mojoをデフォルトで高速に保つ習慣を選んでみましょう。

まとめ

慣用的なMojoでは、ホットパスに型付きのfnを使い、読み取りには借用を使い、計算をベクトル化し、まずプロファイルを取ります。優れた習慣によって、コードは高速かつ明快になります。🎯

無料で開始

AI チューターと学ぶ Mojo — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「Mojoらしいコーディング習慣」レッスンは無料ですか?

はい。「Mojoらしいコーディング習慣」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Mojo Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Mojo Academyコースには全4レッスンが含まれています。

「Mojoらしいコーディング習慣」で何を学びますか?

デフォルトで高速に動作するコードを記述します ブラウザで直接実行するハンズオンコードでMojo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Mojo Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのMojo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Mojoらしいコーディング習慣」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このMojo Academyレッスンでコードを書いて実行できますか?

はい。すべてのMojo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 公平なベンチマークの記述
  2. fnと型が高速化につながる理由
  3. 数値を正しく読み取る
  4. Mojoらしいコーディング習慣
← Mojo Academyに戻る