0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

protobuf.devのAPI Best Practicesを読んでいく全部俺Advent Calendar 2024

Day 25

API Best Practices ~【Appendix】パフォーマンスの最適化

Posted at

【Appendix】パフォーマンスの最適化

プロトコルのパース性能を向上させるために、以下のような手法が存在するが、型安全性や可読性とのトレードオフを考慮する必要がある。

型安全性や可読性を犠牲にすることで、プロトコルのパース性能を向上できる場合があります。

本項でターゲットとしているパフォーマンス低下要因:

  • フィールド数が多いプロトコル(特にメッセージ型フィールドが多い場合)
  • 深くネストされたメッセージ

高速化手法

トリムされたプロトコルの作成

必要とするフィールドのみを含む軽量なプロトコルを作成し、パース時に使用する。

遅延パース

[lazy=true]アノテーションを使用して、必要な場合にのみフィールドをパースする。

バイト列として宣言

フィールドをバイト列として宣言し、クライアント側で必要に応じて手動でパースする。(PII/プライバシーリスクを考慮し、ログに書き込まれるプロトコルでは使用すべきではない。)

補足

パース性能の向上は、特にモバイルデバイスや高負荷環境において重要です。
パフォーマンス向上のための最適化は、トレードオフを考慮し、慎重に選択する必要があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?