GAE on node.js v8の、関数の外のグローバル変数について
これの続き
GCPのCloud Functionsでは、関数の外にあるグローバル変数は、立ち上がっているプロセス内で使い回しのできる存在でした。
グローバル変数を使用して将来の呼び出しでオブジェクトを再利用する
Cloud Function の状態は、将来の呼び出しのために必ずしも保持されるわけではありません。しかし、Cloud Functions が以前の呼び出しの実行環境をリサイクルすることはよくあります。変数をグローバル スコープで宣言すると、その値は再計算せずに後続の呼び出しで再利用できるようになります。この方法では、関数の呼び出しごとに再作成するためコストが高くなりがちなオブジェクトをキャッシュに保存できます。このようなオブジェクトを関数の本文からグローバル スコープに移動して、パフォーマンスを大幅に向上することができます。次の例では、heavy オブジェクトを関数のインスタンスにつき 1 回だけ作成し、指定されたインスタンスに到達するまですべての関数呼び出しで共有します。
教えてもらった引用をペタリと。
では、おそらく同じ仕組みであろうGoogle App Engine on node.js v8 でも、グローバル変数を再利用できるんじゃないかと思い、試してみました。
制作物ッ!
ソースッ!
app.js
const express = require('express');
const app = express();
let count = 0;
app.get('/*', (req, res) => {
count++;
res.status(200).send(`count: ${count}`).end();
});
app.listen(process.env.PORT || 8080);
const express = require('express');
const app = express();
let count = 0;
app.get('/*', (req, res) => {
count++;
res.status(200).send(`count: ${count}`).end();
});
app.listen(process.env.PORT || 8080);
countを加算して、その結果をひたすら返すだけのプログラムッ!
動作確認ッ!
いつもより多くカウントされております。
無事に再利用することができました
Author And Source
この問題について(GAE on node.js v8の、関数の外のグローバル変数について), 我々は、より多くの情報をここで見つけました https://qiita.com/fumihiko-hidaka/items/cb50eb9b1eaa4e9465ec著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .