View a markdown version of this page

GAMEPERF05-BP02 non-latency-sensitive的運算任務移至非同步工作流程 - 遊戲產業鏡頭

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

GAMEPERF05-BP02 non-latency-sensitive的運算任務移至非同步工作流程

當您最佳化遊戲的效能時,請務必記住,只有用戶端和遊戲後端之間的部分互動必須以同步方式執行。您應該從玩家體驗的角度考慮每個功能,並判斷某些互動是否需要同步通訊、封鎖和資源密集,或者這些功能是否可以以非同步方式實作。當您實作網路呼叫時,請使用非同步、非封鎖方法。此外,您的遊戲後端也應設定為透過將任務卸載至佇列,並盡可能優先對用戶端進行快速回應,以有效率的方式執行工作。

未建立此最佳實務時的曝險等級:

實作指引

例如,在玩家工作階段結束時更新排行榜可以非同步實作,因此用戶端不需要等待排行榜更新完成。相反地,請在遊戲用戶端上以非同步方式實作此項目,並考慮設計您的後端服務,將這些類型的操作推送至佇列,例如 Amazon SQS。使用此架構,將後端設定為接受請求、在 SQS 中排入佇列,以協助長期儲存訊息以進行非同步處理,並立即回覆用戶端。當排行榜更新完成時,後端可以傳送更新至遊戲用戶端,以便更新玩家的排行榜檢視。

或者,玩家可以直接造訪遊戲的排行榜畫面來擷取最新資料,這會向您的後端發出 Web 請求,以從快取擷取最新資料。

實作步驟

  • 判斷用戶端與後端互動是否需要同步通訊;盡可能實作非同步、非封鎖方法,以最佳化資源用量。

  • 使用 Amazon SQS 卸載非關鍵任務,例如排行榜更新。

  • 允許用戶端以非同步方式擷取更新的資料,例如隨需或透過背景更新擷取最新的排行榜資料。

Resources