Skip to content

Instantly share code, notes, and snippets.

@erkiesken
Created February 3, 2015 13:44
Show Gist options
  • Save erkiesken/85bbb2e61d42d2c12a01 to your computer and use it in GitHub Desktop.
Save erkiesken/85bbb2e61d42d2c12a01 to your computer and use it in GitHub Desktop.
Node string primitive copy test
$ node --expose-gc node_string_primitive_test.js
before var a mem_rss=11.9MB mem_heap_total=3.9MB mem_heap_used=2.1MB
typeof a string
before making array mem_rss=12.5MB mem_heap_total=5.9MB mem_heap_used=1.8MB
after making array mem_rss=12.6MB mem_heap_total=5.9MB mem_heap_used=1.9MB
after gc mem_rss=12.6MB mem_heap_total=5.9MB mem_heap_used=1.9MB
var getMemory = function ()
{
var memory = process.memoryUsage();
return "mem_rss=" + (memory.rss / 1048576).toFixed(1) + "MB" +
" mem_heap_total=" + (memory.heapTotal / 1048576).toFixed(1) + "MB" +
" mem_heap_used=" + (memory.heapUsed / 1048576).toFixed(1) + "MB";
};
console.log("before var a", getMemory());
global.gc();
var a = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque feugiat lorem id enim vestibulum semper. In quis elementum sem. Suspendisse sollicitudin lacus eget leo auctor suscipit. In malesuada pellentesque justo non pellentesque. Cras ultricies dui sit amet aliquet mattis. Integer eget felis lobortis, convallis nulla non, hendrerit ipsum. Etiam facilisis nisl accumsan, mollis arcu eu, aliquam augue. Vivamus scelerisque sed quam ut commodo. Integer sodales luctus efficitur. Maecenas aliquet lectus nibh, in euismod libero ullamcorper vel. Sed vehicula iaculis erat eu rutrum. Donec ullamcorper bibendum ligula, id consectetur ante rhoncus nec. Sed ultrices ipsum egestas, accumsan diam id, ultricies ligula. Duis erat enim, commodo vitae purus quis, maximus hendrerit lorem. Nullam ut est odio. Suspendisse vulputate nec massa eget efficitur. Sed tempus convallis enim id tincidunt. Vestibulum vel posuere orci, vel faucibus libero. Praesent vel malesuada enim. Proin aliquet libero eu pulvinar gravida. Praesent ornare quam a placerat porta. Etiam sit amet libero at ex venenatis venenatis ultrices ac nunc. Fusce semper quam condimentum nisl condimentum, non posuere ex gravida. Etiam ultricies metus nunc, accumsan ultricies est bibendum vitae. Nullam aliquet magna lacus, at dapibus tortor elementum et. Nullam rhoncus porta urna vel mollis. Integer semper rhoncus neque id blandit. Integer massa metus, eleifend ut varius pharetra, volutpat in turpis. Etiam lacus orci, ultricies et consequat porttitor, rutrum a nunc. Maecenas ullamcorper malesuada est, quis egestas mauris accumsan quis. Integer id erat odio. Quisque nec nulla non turpis mollis tempus a at orci. Mauris rutrum blandit volutpat. Fusce eget pulvinar metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam vel tellus id odio malesuada luctus. Fusce nibh magna, iaculis vel efficitur vitae, pharetra in diam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vestibulum ut tortor porttitor, auctor libero nec, blandit libero. Etiam rhoncus sem et ipsum tempus sodales. Nullam vel enim eu urna interdum pulvinar quis non tellus. Sed nec risus sit amet ex tempor scelerisque ut sed lorem. Aenean ornare pretium ornare. Maecenas ac dictum nibh. Praesent non facilisis nulla. Vestibulum posuere accumsan massa, eget tincidunt justo imperdiet fermentum. Nulla a vehicula lacus. Quisque quis interdum eros. Praesent at ligula in tortor imperdiet feugiat. Phasellus iaculis posuere nibh quis ultricies. Sed convallis sem augue, porta aliquet lectus consequat luctus. Ut tincidunt euismod metus sit amet accumsan. Sed condimentum sem nec magna imperdiet blandit. Fusce quis sem viverra, placerat ex nec, placerat nibh. Suspendisse posuere scelerisque risus eu tincidunt. Cras dignissim leo eu lorem suscipit, quis accumsan purus vehicula. Fusce ornare sollicitudin eros et feugiat. Ut placerat dapibus sapien, ut elementum diam condimentum at. Nunc rutrum mattis semper. Maecenas non dignissim magna, in mattis nisi. Praesent sed volutpat metus. Pellentesque quis est malesuada, tempus nunc finibus, dignissim orci. Nullam non consectetur urna. Fusce pretium ultrices consequat. Sed ipsum nibh, interdum quis sagittis id, gravida vel nunc. Suspendisse tincidunt viverra faucibus. Cras ornare est nec dolor feugiat, facilisis gravida orci viverra. Nunc fringilla non elit eget pretium. Nullam pellentesque sit amet arcu vitae sollicitudin. Sed euismod turpis sed odio efficitur gravida. In venenatis quam a blandit sollicitudin. Cras risus nibh, fringilla eu magna vel, pretium semper tortor. Integer luctus facilisis est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus vel lacus non turpis cursus tristique in vitae eros. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam sed eros bibendum, maximus velit tempus, egestas risus. Phasellus fermentum libero quis elit fringilla lacinia. Suspendisse at pellentesque ligula, quis ullamcorper tellus. Fusce massa libero, faucibus cursus iaculis ac, lobortis luctus orci. Pellentesque eu erat ut enim consectetur cursus. Morbi feugiat, lectus quis viverra laoreet, leo lorem volutpat purus, quis ullamcorper massa tortor auctor nisi. Nulla gravida malesuada nunc, in facilisis urna fringilla vitae. Duis at ex non risus scelerisque bibendum quis vel mauris. Quisque scelerisque, turpis sit amet egestas facilisis, odio velit venenatis nulla, non porta lorem ligula at nisi. Etiam quis tellus et libero iaculis viverra sed efficitur massa. Proin et justo arcu. Nullam commodo maximus enim, id vulputate tortor cursus ac. Sed egestas fermentum tincidunt. Mauris nec risus in nisi sollicitudin egestas ut at lectus. Nullam congue felis sed vestibulum venenatis. Nunc dictum dui non lorem scelerisque ullamcorper. Curabitur auctor ipsum pretium laoreet tincidunt. Morbi leo eros, interdum sed faucibus vitae, pellentesque vitae sem. Aliquam malesuada et nibh finibus finibus. Vivamus sodales iaculis velit, vitae sodales ex consectetur eget. Nam ullamcorper sodales orci, in ultricies justo accumsan quis. Aliquam ornare est ut ultrices ornare. Pellentesque ut porta purus, non egestas quam. Pellentesque euismod aliquam iaculis. Donec fringilla tortor nunc, non sollicitudin nulla posuere eu. Cras dignissim libero libero, ac volutpat dolor ultrices nec. Donec tincidunt nisi quis volutpat lobortis. In porttitor ex eros, et facilisis velit venenatis at. Nulla sed elit ut odio fermentum tempus. Cras ut tellus at nunc varius elementum. Sed id turpis turpis. Cras semper euismod augue, viverra molestie sapien pulvinar imperdiet. Sed tincidunt venenatis massa, non facilisis justo suscipit a. Etiam mollis vulputate nisi sed convallis. Proin vel lacus nisi. Vivamus et dui dui. Sed mattis ut nulla laoreet rhoncus. Cras nibh tortor, malesuada aliquam massa sit amet, mattis viverra sapien. Ut ac efficitur lorem. Curabitur odio diam, placerat ac sapien ut, commodo tempor tortor. Fusce ultrices eros sed tincidunt tincidunt. Nullam blandit sit amet felis sit amet imperdiet. Curabitur id elit vel velit volutpat cursus. Donec efficitur varius tortor nec sollicitudin. Donec non mauris semper, interdum dui eu, tristique mi. In dignissim at ligula in lacinia. Maecenas bibendum id turpis ac pharetra. Nunc nibh eros, sagittis egestas iaculis eget, fermentum ut ante. Curabitur sodales sagittis metus quis congue. Nulla luctus, lorem sollicitudin accumsan consectetur, massa lorem condimentum sapien, ac efficitur arcu massa et magna. Aenean eros augue, tristique eget elementum ac, pretium non leo. Praesent ac augue quis enim volutpat pretium. Nulla nec ligula purus. Pellentesque faucibus elementum faucibus. Sed feugiat bibendum ligula sed mattis. Vivamus orci dui, congue lobortis nisi in, consectetur vulputate lorem. Donec pellentesque id leo a pulvinar. Sed molestie tristique lorem, eu cursus lacus tristique at. Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer purus dolor, posuere nec dui quis, tempor semper magna. Praesent consequat est mi, sed mollis erat finibus at. Sed enim felis, malesuada placerat mauris pellentesque, pellentesque consectetur nisi. Aliquam erat volutpat. Nam tincidunt ac purus eget tempor. Aenean luctus suscipit tellus, quis varius ex ultricies eu. Donec non sem cursus, vehicula lectus sed, egestas ipsum. Vivamus auctor finibus tortor. In turpis lectus, aliquam vel venenatis at, ullamcorper eu nibh. Interdum et malesuada fames ac ante ipsum primis in faucibus. Morbi id justo id tortor tempus efficitur. Nulla id pretium tortor. Nunc congue, mi et feugiat congue, purus dolor finibus metus, ut congue dui lectus sed arcu. Integer vitae ultrices lacus. Aliquam sed enim sed nunc tempor posuere. In a malesuada augue, eu molestie velit. Ut sit amet dolor in tortor iaculis ornare. Vestibulum semper viverra tortor, non varius sem maximus sed. Proin placerat dui leo, et posuere eros cursus quis. Suspendisse sed vehicula nisi, non convallis sapien. Pellentesque iaculis a orci in semper. Donec quis ornare arcu. Mauris metus tortor, pretium eu porta sit amet, hendrerit in erat. Nullam finibus, velit rhoncus dictum ultrices, ligula tortor volutpat arcu, id suscipit velit quam eget diam. Mauris vel lobortis nunc, non dictum quam. Nullam ut varius nisi. Quisque mattis lacus non eros mollis blandit. Maecenas eget enim venenatis, imperdiet enim non, cursus sapien. Donec sollicitudin sem quis urna placerat, in venenatis massa varius. Integer et nulla sit amet nunc dapibus lobortis. Sed vitae congue urna, sed convallis urna. Nullam in enim at lectus vehicula vehicula. Nam id nibh viverra, porttitor elit at, porttitor metus. In mattis turpis sit amet maximus eleifend. Maecenas pulvinar erat eget purus dictum, at malesuada urna commodo. Praesent sollicitudin est at magna bibendum eleifend. Donec odio lorem, rhoncus in ante sit amet, aliquam lobortis felis. Nam id odio faucibus, placerat tellus lobortis, euismod dui. Donec sed augue in nunc consectetur pellentesque. Suspendisse vitae euismod purus, at porttitor massa. Sed porta ultricies volutpat. Maecenas feugiat tincidunt tristique. Duis ligula lectus, finibus vel eleifend et, dignissim nec nulla. Donec eget lacus eu risus mattis sodales. Duis viverra, nulla sed placerat pretium, leo leo placerat orci, vitae commodo ipsum sem vitae lectus. Pellentesque nisi velit, egestas at magna at, bibendum luctus eros. Curabitur et dolor arcu. Cras sagittis, urna sed pharetra tristique, nisi eros dapibus magna, in dictum felis dui quis elit. Nunc quis ullamcorper sem, vel molestie enim. Aliquam eget euismod lorem. Nullam posuere tellus sapien, ut imperdiet leo rutrum vel. In vitae neque a magna feugiat blandit sed a ex. Quisque nibh elit, pretium vitae aliquet non, semper at elit. Pellentesque vel facilisis ligula. Nunc in tellus semper enim blandit egestas. In a lectus velit. Aenean non posuere nibh. Praesent posuere.";
console.log("typeof a", typeof a);
console.log("before making array", getMemory());
var arr = [];
for (var i=0; i < 10000; i++) {
arr.push(a);
}
console.log("after making array", getMemory());
delete arr;
global.gc();
console.log("after gc", getMemory());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment