Debug: Extend rendering debug command

This commit is contained in:
2023-08-20 11:53:50 +02:00
parent 36de2c1715
commit f5837c4b25

View File

@@ -1,8 +1,9 @@
const { SlashCommandBuilder, ComponentType, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); const { SlashCommandBuilder, ComponentType, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js");
const { customAlphabet } = require("nanoid"); const { customAlphabet, random } = require("nanoid");
const { Card, User, Wishlist, Character } = require("../models"); const { Card, User, Wishlist, Character, sequelize } = require("../models");
const { UserUtils, CardUtils, GeneralUtils, Rendering } = require("../util"); const { UserUtils, CardUtils, GeneralUtils, Rendering } = require("../util");
const { PATREON } = require("../config/constants"); const { PATREON } = require("../config/constants");
const axios = require('axios').default
const stores = require("../stores"); const stores = require("../stores");
require('dotenv').config(); require('dotenv').config();
@@ -202,10 +203,10 @@ module.exports = {
switch (i.customId) { switch (i.customId) {
case 'testbatch': case 'testbatch':
i.deferUpdate(); i.deferUpdate();
interaction.channel.send("Beep boop test batch of 5"); interaction.channel.send("Beep boop fetching test renders");
let testCard = await Card.build({ let testCard = await Card.build({
characterId: 0, characterId: 1,
userId: 1, userId: Math.floor(Math.random() * 10),
identifier: "0xffff", identifier: "0xffff",
quality: 1, quality: 1,
printNr: 0, printNr: 0,
@@ -218,15 +219,37 @@ module.exports = {
imageIdentifier: "azur-lane/akashi.png", imageIdentifier: "azur-lane/akashi.png",
enabled: true enabled: true
}) })
for (let index = 0; index < 5; index++) {
testCard.printNr = index; let testCards = [ { ...testCard},{ ...testCard},{ ...testCard},{ ...testCard},{ ...testCard}, { ...testCard},{ ...testCard},{ ...testCard},{ ...testCard},{ ...testCard} ];
let render = await Rendering.renderCard(testCard, testCharacter).catch(async function(error){ let startTime = Date.now();
await interaction.channel.send(JSON.stringify(error)); let renderedStack = await Rendering.renderCardStack([testCard, testCard, testCard]);
await interaction.channel.send(JSON.stringify(error.response?.data)); let execTime = Date.now() - startTime;
return; await interaction.channel.send(renderedStack);
}); await interaction.channel.send(`Stack rendering took ${execTime} ms`);
await interaction.channel.send(render);
}
let total = 0;
startTime = Date.now()
await Promise.all(testCards.map(async card => {
console.log(`Iterating card `);
card.characterId = (await Character.findAll({where: {enabled: true},order: sequelize.random(),limit: 1}))[0].id;
card.id = 0;
card.identifier = CardUtils.generateIdentifier();
card.userId = 1;
let startTime = Date.now();
card['render'] = await Rendering.renderCard(card);
let execTime = Date.now() - startTime;
total += execTime;
card['timing'] = `${card.identifier} Card rendering took ${execTime} ms`;
}));
let toatalExecTime = Date.now() - startTime;
await interaction.channel.send(testCards.map(card => {return `${card['identifier']} ${card['render']}` }).join('\n'));
await interaction.channel.send(testCards.map(card => {return card['timing'] }).join('\n'))
let joseStats = (await axios.get(`${process.env.JOSE_ENDPOINT}/status`)).data;
await interaction.channel.send(`Active Nodes: ${joseStats.nodes.count} Queued Jobs: ${joseStats.jobs.queued.count}`);
await interaction.channel.send(`Total time for ${testCards.length} Cards: ${toatalExecTime}\nAverage time per card: ${total / testCards.length}`);
break; break;
} }
}); });