Not sure if this is a Lightning bug. One of my Lightning pages consume lots of memory (around 4GB) when processing 4000+ records.
I found out that the root cause is : when using component.set to bind the same aura:attribute multiple times, the memory consumption keeps increasing. Garbage collection only happened about few minutes later.
Below is a simple illustration of my testing code (Note: in my actual code, the component.set is called at a separate event when user sorts the table by certain column - the page crashed if a user keeps perform sorting):
var myObjectMap = [];
//Set myObjectMap with 4000+ records based on Apex Controller return
component.set("v.attribute1", myObjectMap); //Consumed 500 MB memory
component.set("v.attribute1", myObjectMap); //Consumed another 500 MB memory
component.set("v.attribute1", myObjectMap); //Consumed another 500 MB memory
...