JA EN

#performance

5 記事

01 ·言語処理系·★ 会員·15分で読めます Pythonはなぜ遅いのか、をちゃんと言う 「Pythonは遅い」の中には、1演算あたりの手間・メモリの並び方・並列に回らないという別々の3つの話が混ざっています。オブジェクトと評価ループ、NumPyが速い本当の理由、GILが何を守っているのか、そしてPEP 703以降のfree-threadedビルドがどこまで解決するのかを、前提知識ゼロから積み上げます。 02 ·言語処理系·★ 会員·13分で読めます JITとGC — 実行しながら速くする・掃除する 実行時コンパイラ(JIT)とガベージコレクタ(GC)は、どちらもアプリを止めずに裏で働く仕事です。ホットスポット検出・段階コンパイル・インライン化・投機と脱最適化・世代別GC・三色マーキング・ライトバリアを前提知識ゼロから積み上げ、最後はGCログとJITログを自分で読めるところまで。 03 ·データ構造·★ 会員·13分で読めます キャッシュに優しいコード — 同じO(n)で10倍差がつく理由 計算量が同じ2つの実装で実行時間が桁違いになるのは、CPUがデータを「1個ずつ」ではなく「64バイトの塊」で運ぶからです。局所性・キャッシュライン・配列と連結リストの実測差・AoS/SoA・ループ順序・false sharing を、前提知識ゼロから、最後は perf で自分の目で確かめるところまで。 04 ·計算量と評価·★ 会員·10分で読めます 計算量と実測が食い違うとき — キャッシュ・分岐・メモリ帯域 同じO(n)のコードが実測では桁で違う——O記法が意図的に捨てている「メモリの現実」を、キャッシュ階層・分岐予測・メモリ帯域の3つの側面から解き明かす。 05 ·計算量と評価·無料·8分で読めます 計算量を1から理解する — オーダー記法は何を測っているのか O(n)・O(n log n)・O(n²)が実行時間としてどんな体感になるのか。定数倍とオーダーの違い、時間と空間のトレードオフ、そして理論の計算量とプロファイラの実測が食い違う理由まで、前提知識ゼロで解説します。