buffer_bench.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. var source = new Buffer(100),
  2. dest = new Buffer(100), i, j, k, tmp, count = 1000000, bytes = 100;
  3. for (i = 99 ; i >= 0 ; i--) {
  4. source[i] = 120;
  5. }
  6. var str = "This is a nice String.",
  7. buf = new Buffer("This is a lovely Buffer.");
  8. var start = new Date();
  9. for (i = count * 100; i > 0 ; i--) {
  10. if (Buffer.isBuffer(str)) {}
  11. }
  12. var end = new Date();
  13. console.log("Buffer.isBuffer(str) " + (end - start) + " ms");
  14. var start = new Date();
  15. for (i = count * 100; i > 0 ; i--) {
  16. if (Buffer.isBuffer(buf)) {}
  17. }
  18. var end = new Date();
  19. console.log("Buffer.isBuffer(buf) " + (end - start) + " ms");
  20. var start = new Date();
  21. for (i = count * 100; i > 0 ; i--) {
  22. if (str instanceof Buffer) {}
  23. }
  24. var end = new Date();
  25. console.log("str instanceof Buffer " + (end - start) + " ms");
  26. var start = new Date();
  27. for (i = count * 100; i > 0 ; i--) {
  28. if (buf instanceof Buffer) {}
  29. }
  30. var end = new Date();
  31. console.log("buf instanceof Buffer " + (end - start) + " ms");
  32. for (i = bytes ; i > 0 ; i --) {
  33. var start = new Date();
  34. for (j = count ; j > 0; j--) {
  35. tmp = source.toString("ascii", 0, bytes);
  36. }
  37. var end = new Date();
  38. console.log("toString() " + i + " bytes " + (end - start) + " ms");
  39. }
  40. for (i = bytes ; i > 0 ; i --) {
  41. var start = new Date();
  42. for (j = count ; j > 0; j--) {
  43. tmp = "";
  44. for (k = 0; k <= i ; k++) {
  45. tmp += String.fromCharCode(source[k]);
  46. }
  47. }
  48. var end = new Date();
  49. console.log("manual string " + i + " bytes " + (end - start) + " ms");
  50. }
  51. for (i = bytes ; i > 0 ; i--) {
  52. var start = new Date();
  53. for (j = count ; j > 0 ; j--) {
  54. for (k = i ; k > 0 ; k--) {
  55. dest[k] = source[k];
  56. }
  57. }
  58. var end = new Date();
  59. console.log("Manual copy " + i + " bytes " + (end - start) + " ms");
  60. }
  61. for (i = bytes ; i > 0 ; i--) {
  62. var start = new Date();
  63. for (j = count ; j > 0 ; j--) {
  64. for (k = i ; k > 0 ; k--) {
  65. dest[k] = 120;
  66. }
  67. }
  68. var end = new Date();
  69. console.log("Direct assignment " + i + " bytes " + (end - start) + " ms");
  70. }
  71. for (i = bytes ; i > 0 ; i--) {
  72. var start = new Date();
  73. for (j = count ; j > 0 ; j--) {
  74. source.copy(dest, 0, 0, i);
  75. }
  76. var end = new Date();
  77. console.log("Buffer.copy() " + i + " bytes " + (end - start) + " ms");
  78. }