var Student = function(data){
this.name = data.name;
this.courses = data.courses;
this.fees = data.fees;
this.graduated = data.graduated
}
function StudentDatabase(){
var students = {};
var count = 0;
var add = function(data){
students[data.name] = new Student(data)
count ++;
};
var get = function(name){
return students[name];
};
var getCount = function(){
return count;
}
return{
add: add,
get: get,
getCount: getCount
}
};
var students = new StudentDatabase();
var courses = ['Physics', 'Biology', 'Chemistry', 'Mathematics'];
var graduated = [true, false];
var initialMemory = process.memoryUsage().heapUsed;
for( var i=0; i < 1000000; i++){
students.add({
name: 'student ' + i,
courses: courses[Math.floor(Math.random() *5 ) ],
fees: 1000,
graduated: graduated[Math.floor(Math.random() *2 ) ]
})
}
var afterMemory = process.memoryUsage().heapUsed;
console.log('used memory ' + (afterMemory - initialMemory)/ 1000000)
console.log( students.getCount())