Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var memwatch = require('memwatch');
- function abstractions() {
- function Person() {
- this.private = {};
- }
- Object.defineProperty(Person.prototype, 'name', {
- get:function() { return this.private.name; },
- set:function(e) { this.private.name = e; }
- });
- Object.defineProperty(Person.prototype, 'age', {
- get:function() { return this.private.age; },
- set:function(e) { this.private.age = e; }
- });
- Object.defineProperty(Person.prototype, 'gender', {
- get:function() { return this.private.gender; },
- set:function(e) { this.private.gender = e; }
- });
- Person.prototype.friend = function(p) {
- if(!this.private.friends)
- this.private.friends = [];
- this.private.friends.push(p);
- }
- var hd = new memwatch.HeapDiff();
- var time = process.hrtime();
- var mem = [];
- for(var i=0; i < 10000; i++) {
- var person = new Person();
- person.name = "My Name" + i;
- person.age = i;
- person.gender = i%2 == 1 ? "male" : "female";
- for(var j=i-1; j > -1; j--)
- person.friend(mem[j]);
- mem.push(person);
- }
- var timediff = process.hrtime(time);
- var memdiff = hd.end();
- console.log('abstraction time was: %d nanoseconds', timediff[0] * 1e9 + timediff[1]);
- console.log('abstraction memory was: '+memdiff.change.size);
- }
- function userobject() {
- var hd = new memwatch.HeapDiff();
- var time = process.hrtime();
- var mem = [];
- for(var i=0; i < 10000; i++) {
- var person = {};
- person.name = "My Name" + i;
- person.age = i;
- person.gender = i%2 == 1 ? "male" : "female";
- person.friends = [];
- person.friend = function(friend) {
- this.friends.push(friend);
- }
- for(var j=i-1; j > -1; j--);
- person.friend(mem[j]);
- mem.push(person);
- }
- var timediff = process.hrtime(time);
- var memdiff = hd.end();
- console.log('user object time was: %d nanoseconds', timediff[0] * 1e9 + timediff[1]);
- console.log('user object memory was: '+memdiff.change.size);
- }
- if(process.argv[2] == "userobject")
- userobject();
- else if(process.argv[2] == "abstractions")
- abstractions();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement