Help us understand the problem. What is going on with this article?

Cloud Functions のパフォーマンス(処理速度)をあげるには

More than 1 year has passed since last update.

はじめに結論

Google Cloud Functions (Cloud Functions for Firebase) のパフォーマンス(処理速度)をあげるには、単純にメモリの割り当て量を増やせばよいです。公式ドキュメント に記載されていますが、以下の通り、メモリの割り当て量を増やせば CPU の割り当て量も比例して増えるので、メモリが十分足りている場合でも、パフォーマンス(処理速度)を上げるためには、メモリの割り当て量(CPU の割り当て量)を増やせばよいです。なお、デフォルトでは、256 MB に設定されています。

image.png

実験

この記事で作成した Cloud Functions で、メモリの割り当て量を変えて、実行時間を計測した結果が下記になります。メモリの割り当て量を、5分間のインターバルを設けながら、256 MB ⇒ 512 MB ⇒ 1,024 MB ⇒ 2,048 MB と変えて、10分間ずつシーケンシャルに Cloud Functions を実行しました。なお、実行環境は、ランタイムは Node.js 6、リージョンは us-central1 になります。

image.png

計測結果

メモリ 割り当て量 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 のときが多くなっているのは、原因不明です。

image.png

まとめ

繰り返しになりますが、Google Cloud Functions (Cloud Functions for Firebase) のパフォーマンス(処理速度)をあげるには、単純にメモリの割り当て量 (CPU の割り当て量) を増やせばよいです。ただし、比例して料金も増加しますので、パフォーマンスとコストのバランスをとってメモリの割り当て量を設定することをお勧めします。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした