概要
PlayFab 統合 SDK は、カスタム アロケーション フック、明示的なリソースのクリーンアップ、安全な非同期操作の処理 をサポートすることで、開発者にメモリ使用量の正確な制御を提供します。これにより、ゲームや組み込みプラットフォームなどの高性能または資源制約の環境に適しています。カスタム メモリ アロケーション
SDK では、PFMemoryHooks を使用してカスタム メモリ割り当ておよび解放関数を定義できます。これにより、アリーナ、プール、プラットフォーム固有のアロケーターなど、既存のメモリ管理システムに SDK を統合できます。
カスタム メモリ フックの設定
- フックは
PFServicesInitializeを呼び出す 前 に設定する必要があります。 - SDK が初期化されると 変更できません。
- 設定されていない場合、SDK はデフォルトで標準の割り当て (
malloc/free) を使用します。
非同期操作
SDK 内のほとんどの API 呼び出しは非同期です。各非同期呼び出しには、リクエストの間存続する必要のある有効なXAsyncBlock が必要です。
XAsyncBlock を安全に使用する
XAsyncBlockのライフタイムを保証できない限り、スタック割り当てしないでください。- 動的に割り当てた場合は所有権を解放し、コールバック内でクリーンアップしてください。
- 無効化された参照やポインターをラムダ内でキャプチャしないでください。
リソースのクリーンアップ
SDK はハンドル (例:PFEntityHandle、PFServiceConfigHandle) を使用します。これらは、不要になったら 明示的に クローズする必要があります。
ハンドルのクローズと初期化解除
- リークを防ぐため、常に PlayFab ハンドルをクローズしてください。
- シャットダウン前に
PFServicesUninitializeAsyncの完了を待機してください。
ベスト プラクティス
- メモリ フックを早めに設定: 他の PlayFab API 呼び出しの前に設定します。
- メモリ リークの回避: ハンドルをクローズし、非同期リソースを慎重に管理します。
- メモリ プロファイラーの使用: 特にメモリ予算が厳しいプラットフォームで使用します。
- プール アロケーターの使用: パフォーマンス クリティカルまたは頻繁な割り当てに使用します。
