前提・実現したいこと
TRPGに使うDiscordのダイスbotを自作してglitch.comで稼働させているのですが、複数回の処理に耐えられずbotが落ちてしまいます。
メモリ、又はCPU使用量がオーバーして落ちていることが原因のようです。
安定稼働させるためにはどのような修正を施せばよいのでしょうか。あるいは、無料版ではこれが限界なのでしょうか。
発生している問題・エラーメッセージ
The app exceeded the memory limit. Stopping and pausing for 15 seconds. Large or inefficient processes, libraries or compilers that use too much RAM may get killed This may be caused by large or inefficient processes, libraries or compilers
該当のソースコード
JavaScript
1const Discord = require("discord.js"); 2const client = new Discord.Client(); 3 4client.on("ready", () => { 5 console.log(`${client.user.tag} でログインしています。`); 6}); 7 8client.on("message", async msg => { 9 if (msg.content.match(/[0-9]{1,}[d][0-9]{1,}/)) { 10 const sai = msg.content.split("+")[0]; 11 const top = sai.substr(0, sai.indexOf("d")); //dより前を取得 12 const bottom = sai.substr(sai.indexOf("d") + 1); //dより後を取得 13 const array = []; 14 const max = bottom.match(/[0-9]{1,}/); //最大数 dより後の数字のみを抽出 15 const many = top.match(/[0-9]{1,}/); //何回か dより前の数字だけを抽出 16 for (let i = 0; i < many; i++) { 17 array.push(Math.floor(Math.random() * max) + 1); 18 } 19 if (max == 100) { 20 if (array >= 96) { 21 msg.reply(array + ",fumble"); 22 } else if (array <= 5) { 23 msg.reply(array + ",critical"); 24 } else { 25 msg.reply(array); 26 } 27 } else { 28 const total = array.reduce((sum, element) => sum + element, 0); 29 msg.reply(many + "d" + max + "=" + array + "→[" + total + "]"); 30 }; 31});
試したこと
HTMLでページを作ってそこでGoogleを用いて実行してタスクマネージャー等で確認しても重さを確認できませんでした。
補足情報(FW/ツールのバージョンなど)
glitch,node.js v12,discord.j ^12.5.3
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。