[TxMt] Re: Memory leak?

Peter Kim pjkim00 at gmail.com
Mon Apr 7 17:35:44 UTC 2014

>> 1) Memory usage should be in the ballpark of starting footprint (40 
>> MB) + file (66 MB) = 106 MB.
> This is not possible because TM associates scopes with everything in 
> your document and it also needs to create CoreText line objects to 
> render the text (which is too slow to do ad-hoc so these are cached).
> It will probably need 10-20 extra bytes per character in your document, 
> which turns 66 MB into ~1 GB, add in memory fragmentation and data 
> structure alignment requirements, and you probably have your 1.4 GB.
> Maybe it can be improved, maybe there is the need for a special 
> (limited) mode for large files, but it?s not currently a priority.

Thank you for the explanation. I really like TM2 for coding and was hoping it could be my editor for large files but it seems this was not meant to be-- will use TM for coding, vim for large files.

>> 2) After closing the window/file, memory footprint should go back to 
>> near starting footprint (40 MB)
> How do you measure this? The malloc allocator does not give pages back 
> to the OS (AFAIK), so once a process has increased its number of 
> allocated pages, the count does not go down again.
>> 3) Closing and reopening a file should not increase memory footprint 
>> further.
> This might be due to fragmentation. Here one solution could be a custom 
> memory allocator to keep everything related to a document allocated from 
> the same memory pool, but there are still many other things I would like 
> to do, before I look into such optimizations.

I measured using the memory pane of Activity Monitor.app. Regarding the malloc allocator not giving pages back, this sounds bad behavior and is an OS or C library issue that should be fixed by "them." Thank you for taking the time to respond to my email.

More information about the textmate mailing list