Files
scrabble-online/server/index.js

63 lines
1.5 KiB
JavaScript

const Logger = require('./src/logger.js');
const Server = require('./src/webserver.js');
const Router = require('./src/router.js');
const Socket = require('./src/socketserver.js');
const Locale = require('./src/locale.js');
const Dict = require('./src/dictionary.js');
const Dist = require('./src/letter-distributions.js');
const Helpers = require('./src/helpers.js');
require('dotenv').config();
async function main()
{
Logger.SetLevel(Logger.VERBOSE_LOGS);
Logger.init();
await Locale.init();
await Dict.LoadTextDictionaries();
await Server.init();
await Socket.init();
await Router.init();
// benchmarkDictionary();
Logger.ready();
}
function benchmarkDictionary()
{
let hrTime = process.hrtime();
// convert to ns
let startTime = hrTime[0] * 1000000 + hrTime[1] / 1000;
// Time 10 thousand reads
for (let i = 0; i < 10000; i++)
Dict.FindWord('en', 'ZZZS');
hrTime = process.hrtime();
let endTime = hrTime[0] * 1000000 + hrTime[1] / 1000;
Logger.debug(`10 000 Reads (unoptimised): ${endTime - startTime}μs`);
Dict.Optimise();
hrTime = process.hrtime();
startTime = hrTime[0] * 1000000 + hrTime[1] / 1000;
// Time 10 thousand reads
for (let i = 0; i < 10000; i++)
Dict.FindWord('en', 'ZZZS');
hrTime = process.hrtime();
endTime = hrTime[0] * 1000000 + hrTime[1] / 1000;
Logger.debug(`10 000 Reads (optimised): ${endTime - startTime}μs`);
}
main();