はじめに結論
Google Cloud Functions (Cloud Functions for Firebase) のパフォーマンス(処理速度)をあげる手っ取り早い方法の一つは、メモリの割り当て量を増やすことです。公式ドキュメント に記載されていますが、以下の通り、メモリの割り当て量を増やせば CPU の割り当て量も比例して増えるので、メモリが十分足りている場合でも、パフォーマンス(処理速度)を上げるために、メモリの割り当て量(CPU の割り当て量)を増やすのは有効な手段となります。なお、デフォルトでは、256 MB に設定されています。
実験
この記事で作成した Cloud Functions で、メモリの割り当て量を変えて、実行時間を計測した結果が下記になります。メモリの割り当て量を、5分間のインターバルを設けながら、256 MB ⇒ 512 MB ⇒ 1,024 MB ⇒ 2,048 MB と変えて、10分間ずつシーケンシャルに Cloud Functions を実行しました。なお、実行環境は、ランタイムは Node.js 6、リージョンは us-central1 になります。
計測結果
| メモリ 割り当て量 | CPU 割り当て量 | 実行時間 (50th パーセンタイル値) |
|---|---|---|---|
|256 MB|400 MHz|約 5,400 msec|
|512 MB|800 MHz|約 3,400 msec|
|1,024 MB|1.4 GHz|約 2,300 msec|
|2,048 MB|2.4 GHz|約 1,900 msec|
結果、メモリ割り当て量(CPU の割り当て量)を増やせば、実行時間も短くなっています。
なお、実際のメモリの使用量は、30 MB ~ 80 MB ぐらいです。メモリの割り当て量が 1,024 MB のときが少なくなっていて、2,048 MB のときが多くなっているのは、原因不明です。
まとめ
繰り返しになりますが、Google Cloud Functions (Cloud Functions for Firebase) のパフォーマンス(処理速度)をあげる手っ取り早い方法の一つは、メモリの割り当て量を増やすことです。ただし、比例して料金も増加しますので、パフォーマンスとコストのバランスをとってメモリの割り当て量を設定することをお勧めします。