packet_parser.js 1007 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. var p = new Buffer(65535*10);
  2. var offset = 0;
  3. var plen = 17;
  4. while(1) {
  5. if (p.length - offset >= plen+4) {
  6. p[offset] = plen;
  7. p[offset+1] = 0;
  8. p[offset+2] = 0;
  9. p[offset+3] = 123; // packet id
  10. offset += plen + 4;
  11. } else {
  12. p[offset] = p.length - offset - 4;
  13. p[offset+1] = 0;
  14. p[offset+2] = 0;
  15. p[offset+3] = 123; // packet id
  16. break;
  17. }
  18. }
  19. var PP = require('../../lib/packet_parser.js');
  20. var count = 0;
  21. var cc = 0;
  22. function handler(packet) {
  23. //console.log(packet.length(), packet.sequenceId);
  24. cc += packet.sequenceId
  25. count++;
  26. }
  27. var chunks = [];
  28. var csize = parseInt(process.argv[2]);
  29. for (var o=0; o + csize < p.length; o += csize) {
  30. chunks.push(p.slice(o, o+csize));
  31. }
  32. var start = process.hrtime();
  33. for (var i=0; i < 50; ++i) {
  34. var packetParser = new PP(handler);
  35. for (var j=0; j < chunks.length; ++j) {
  36. packetParser.execute(chunks[j]);
  37. }
  38. }
  39. var end = process.hrtime(start);
  40. var dur = end[0]*1e9 + end[1];
  41. console.log(1e9*count/dur, count, cc);