Looking through perf traces of IntelliSense, I can see that large source files are ending up on the large object heap because they are read as a single chunk:

This is going to put pressure on Gen2 collections, and I can see that in one trace opening a completion window in a large file causes a 77ms GC2 collection.
We should read these in chunks to avoid this.
Trace: [internalshare]public\wismith\PerfViewData5.etl.zip.