mcpField
R
roblox-performance

roblox-performance

github.com/tabooharmony開発1382.2k 回インストール2 週間前に更新
リポジトリ

roblox-performance について

Roblox 開発者向けのパフォーマンス分析・調整スキルです。計測したボトルネックを基に最適化し、分析ツール、性能目標、Parallel Luau、ストリーミング、モバイル端末の検証を扱います。

主な機能

  1. 01スクリプト、物理、描画、メモリ、ネットワークを分析
  2. 02性能目標を設定し、計測した劣化を調査
  3. 03分析で特定した独立 CPU 処理に Actors を使用
  4. 04StreamingEnabled の動作と設定を把握
  5. 05モバイル端末の描画や UI の負荷を分析

活用シーン

  1. 01スクリプトや描画のボトルネックを特定
  2. 02継続的なメモリ増加を調査
  3. 03Parallel Luau に適した処理か評価
  4. 04低性能なモバイル端末向けに Roblox 体験を調整

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tabooharmony/roblox-brain --skill roblox-performance

インストール後、Claude Code で/roblox-performanceを入力して読み込まれたか確認します。

同梱ファイルreferences/full.md

詳細

Roblox のパフォーマンス

読み込むタイミング

プロファイリングとパフォーマンス予算の設定に使用します。プール化とライフサイクルのパターンについては、roblox-luau-patterns を参照してください。

クイックリファレンス

プロファイリングツール
  • MicroProfiler (Ctrl+F6):スクリプト、物理演算、レンダリングのフレーム内訳を確認できます。
  • Developer Console (F9):メモリ、ネットワーク、レンダリング、サーバーの統計情報を確認できます。
  • Script Profiler (Ctrl+Alt+F5):スクリプトごとの CPU とヒープを確認できます。
  • ラベル:debug.profilebegin/debug.profileend で領域をマークし、debug.setmemorycategory でメモリにラベルを付けます。計測処理はフラグで制御してください。
パフォーマンス目標
指標初期目標調査する基準
サーバーのハートビート< 16ms> 33ms
クライアント FPS(デスクトップ)60< 30
クライアント FPS(モバイル)45< 30
メモリデバイスによる継続的な増加

俗説ではなく、計測したホットパスを最適化してください。計測結果に基づいてスロットリングし、リリース後に再度プロファイリングしてください。

Parallel Luau
  • プロファイリングで分離可能な CPU 処理が特定された場合にのみ、Actor を使用してください。
  • ワーカーで計算し、制限された DataModel への書き込みの前に同期してください。
  • Actor 間でモジュールの共有状態に依存しないでください。SendMessage はデータをコピーします。SharedTable は共有状態とアトミック更新をサポートします。
ホットループのコストモデル
  • Luau はグローバルインポートを最適化します。関数の巻き上げやループのアンローリングに関する俗説に頼らないでください。環境の不純性によって最適化が無効になることがあります。CPU だけでなく、割り当てもプロファイリングしてください。GC のコストは後から発生する場合があります。
オブジェクトプール

事前にクローンを作成して再利用します。標準的なプールコード(トークンリースによる所有権管理)については、roblox-luau-patterns を参照してください。

StreamingEnabled の基本
  • デフォルトで有効です。コンテナー単位で適用され、Workspace の子孫のみがストリーミングされます。ModelStreamingBehavior = Improved では、BasePart 以外の子孫も親の Model とともにストリーミングされます。Legacy では BasePart のみがストリーミングされます。
  • ストリーミングアウトされたオブジェクトは破棄されず、親が nil になります。ストリーミングバックされると、Luau の参照は引き続き有効です。
  • 設定(Studio):目標値のデフォルトは 1024、最小値は 64 です。StreamingIntegrityMode を設定し、データに基づいて調整してください。
  • 注意点:ストリーミングアウトされている場合、FindFirstChild("DistantPart") は nil を返します。タイムアウト付きの WaitForChild を使用してください。
モバイル

ローエンドデバイスで、ジオメトリ、テクスチャ、パーティクル、UI、シャドウをプロファイリングしてください。

コード例と API テーブルを含む完全なリファレンス:references/full.md

コメント