Advertisement
Guest User

Untitled

a guest
Oct 20th, 2014
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. var memwatch = require('memwatch');
  2.  
  3. function abstractions() {
  4.  
  5. function Person() {
  6. this.private = {};
  7. }
  8.  
  9. Object.defineProperty(Person.prototype, 'name', {
  10. get:function() { return this.private.name; },
  11. set:function(e) { this.private.name = e; }
  12. });
  13.  
  14. Object.defineProperty(Person.prototype, 'age', {
  15. get:function() { return this.private.age; },
  16. set:function(e) { this.private.age = e; }
  17. });
  18.  
  19. Object.defineProperty(Person.prototype, 'gender', {
  20. get:function() { return this.private.gender; },
  21. set:function(e) { this.private.gender = e; }
  22. });
  23.  
  24. Person.prototype.friend = function(p) {
  25. if(!this.private.friends)
  26. this.private.friends = [];
  27. this.private.friends.push(p);
  28. }
  29.  
  30. var hd = new memwatch.HeapDiff();
  31. var time = process.hrtime();
  32. var mem = [];
  33. for(var i=0; i < 10000; i++) {
  34. var person = new Person();
  35. person.name = "My Name" + i;
  36. person.age = i;
  37. person.gender = i%2 == 1 ? "male" : "female";
  38. for(var j=i-1; j > -1; j--)
  39. person.friend(mem[j]);
  40. mem.push(person);
  41. }
  42. var timediff = process.hrtime(time);
  43. var memdiff = hd.end();
  44.  
  45. console.log('abstraction time was: %d nanoseconds', timediff[0] * 1e9 + timediff[1]);
  46. console.log('abstraction memory was: '+memdiff.change.size);
  47. }
  48.  
  49. function userobject() {
  50. var hd = new memwatch.HeapDiff();
  51. var time = process.hrtime();
  52. var mem = [];
  53. for(var i=0; i < 10000; i++) {
  54. var person = {};
  55. person.name = "My Name" + i;
  56. person.age = i;
  57. person.gender = i%2 == 1 ? "male" : "female";
  58. person.friends = [];
  59. person.friend = function(friend) {
  60. this.friends.push(friend);
  61. }
  62. for(var j=i-1; j > -1; j--);
  63. person.friend(mem[j]);
  64. mem.push(person);
  65. }
  66. var timediff = process.hrtime(time);
  67. var memdiff = hd.end();
  68.  
  69. console.log('user object time was: %d nanoseconds', timediff[0] * 1e9 + timediff[1]);
  70. console.log('user object memory was: '+memdiff.change.size);
  71. }
  72.  
  73. if(process.argv[2] == "userobject")
  74. userobject();
  75. else if(process.argv[2] == "abstractions")
  76. abstractions();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement