Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. var fastSafeStringify = require('fast-safe-stringify');
  2. var fastJsonStringify = require('fast-json-stringify');
  3. var fastStableStringify = require('fast-stable-stringify');
  4.  
  5. const object = {
  6. foo: "bar",
  7. number: 12345,
  8. bool: true,
  9. name: "some really long string",
  10. message: "this is really weird"
  11. };
  12.  
  13. const scheme = {
  14. type: 'object',
  15. properties: {
  16. foo: {type: "string"},
  17. name: {type: "string"},
  18. message: {type: "string"},
  19. number: {type: "number"},
  20. bool: {type: "boolean"}
  21. }
  22. };
  23.  
  24. const count = 1000 * 1000;
  25.  
  26. console.time('JSON.stringify');
  27. for (let i = 0; i < count; i++) {
  28. JSON.stringify(object);
  29. }
  30. console.timeEnd('JSON.stringify');
  31.  
  32. console.time('fastSafeStringify');
  33. for (let i = 0; i < count; i++) {
  34. fastSafeStringify(object);
  35. }
  36. console.timeEnd('fastSafeStringify');
  37.  
  38. console.time('luhaStringify');
  39. for (let i = 0; i < count; i++) {
  40. luhaStringify(object);
  41. }
  42. console.timeEnd('luhaStringify');
  43.  
  44. console.time('fastStableStringify');
  45. for (let i = 0; i < count; i++) {
  46. fastStableStringify(object);
  47. }
  48. console.timeEnd('fastStableStringify');
  49.  
  50. console.time('fastJsonStringify');
  51. const fastJsonStringifyFn = fastJsonStringify(scheme);
  52. for (let i = 0; i < count; i++) {
  53. fastJsonStringifyFn(object);
  54. }
  55. console.timeEnd('fastJsonStringify');
  56.  
  57. function luhaStringify(object) {
  58. if (object) {
  59. let first = true;
  60. let str = "{";
  61.  
  62. for (let key of Object.keys(object)) {
  63. if (first) {
  64. str += '"' + key + '"'; //`"${key}": `
  65. first = false;
  66. } else {
  67. str += ', "' + key + '": '; // `, "${key}": `
  68. }
  69.  
  70. if (typeof object[key] === 'string') {
  71. str += '"' + object[key] + '"'; //`"${object[key]}"`;
  72. } else {
  73. str += object[key].toString(); // `${object[key]}`;
  74. }
  75. }
  76.  
  77. return str + "}";
  78. } else {
  79. throw new Error(`Cannot stringify empty object`);
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement