2026年3月13日 - リンクブログ
Shopify/liquid: パフォーマンス: パースとレンダリングを53%高速化、割り当てを61%削減 (経由) ShopifyのCEO Tobias Lütkeによる Liquid に対する PR。Liquid は Shopify のオープンソース Ruby テンプレートエンジンで、Tobi が 2006 年に初めて作った時 Django に多少影響を受けたとされています。
Tobi は autoresearch の variant を用いて、数十の新しいパフォーマンスのマイクロ最適化を見つけました。autoresearch は Andrej Karpathy のコード作成エージェントが数百の半自律的な実験を実行して、新しい有効なトレーニング技術を見つけるための新しいシステムです。並ぶリンク: autoresearch、nanochat。
Tobi の実装は、2日前にこの autoresearch.md のプロンプトファイルと、エージェントがテストスイートを実行し、ベンチマークスコアを報告するための autoresearch.sh スクリプトの組み合わせで開始されました。
このPRには、約120件の自動化された実験からの 93件のコミット が含まれています。PRの説明には、機能した点が詳しく記されています。いくつか例は以下のとおりです:
- StringScanner トークナイザを
String#byteindexに置換しました。 単一バイトのbyteindex検索は、正規表現ベースのskip_untilより約40%高速です。これだけで解析時間を約12%短縮しました。- 純粋なバイト単位の
parse_tag_token。 毎回{% %}トークンに対して呼ばれていた高価なStringScanner#string=リセットを排除しました(878回)。タグ名とマークアップ抽出のための手動バイトスキャニングは、リセットして再スキャンする StringScanner より高速です。 [...]- 小さな整数
to_sのキャッシュ。 0-999 の事前計算済みの凍結文字列を使用することで、レンダリングごとに 267 回のInteger#to_s割り当てを回避します。
これはすべて合計され、ベンチマークで53%の改善をもたらしました。20年以上にわたり何百人もの貢献者によって微調整されてきたコードベースとしては、実に感嘆に値します。
この事例はいくつかの興味深いアイデアを示していると思います:
- 頑健なテストスイートを持つこと - この場合は 974 のユニットテスト - は、コーディングエージェントと作業する際の 巨大な突破口 です。 この種の研究努力は、まず検証済みのテストスイートを持っていなければ実現できません。
- autoresearch パターン - where an age




