var ITERATIONS = 10000; var mc = require("../"); var util = require('util'); var states = mc.states; var testDataWrite = [ {name: 'keep_alive', params: {keepAliveId: 957759560}}, {name: 'chat', params: {message: ' Hello World!'}}, {name: 'position_look', params: {x: 6.5, y: 65.62, stance: 67.24, z: 7.5, yaw: 0, pitch: 0, onGround: true}} // TODO: add more packets for better quality data ]; mc.supportedVersions.forEach(function(supportedVersion){ var mcData=require("minecraft-data")(supportedVersion); var version=mcData.version; describe("benchmark "+version.minecraftVersion,function(){ this.timeout(60 * 1000); var inputData = []; it("bench serializing",function(done){ var serializer=new mc.createSerializer({state:states.PLAY,isServer:false,version:version.majorVersion}); var start, i, j; console.log('Beginning write test'); start = Date.now(); for(i = 0; i < ITERATIONS; i++) { for(j = 0; j < testDataWrite.length; j++) { inputData.push(serializer.createPacketBuffer(testDataWrite[j])); } } var result=(Date.now() - start) / 1000; console.log('Finished write test in ' + result + ' seconds'); done(); }); it("bench parsing",function(done){ var deserializer=new mc.createDeserializer({state:states.PLAY,isServer:true,version:version.majorVersion}); console.log('Beginning read test'); start = Date.now(); for (var j = 0; j < inputData.length; j++) { deserializer.parsePacketBuffer(inputData[j]); } console.log('Finished read test in ' + (Date.now() - start) / 1000 + ' seconds'); done(); }); }); });