- VS Code 1.21 introduced a new text buffer implementation for better performance and memory usage.
- The previous implementation used an array of lines, which was inefficient for large files.
- A piece table data structure was chosen to reduce memory usage and improve performance.
- The piece table was enhanced with caching for faster line lookups and a balanced binary tree for efficient searches.
- Memory usage was significantly reduced, and file opening times improved with the new implementation.
- Editing performance was stable across different file sizes, though line-based lookups were slower in some cases.
- The team considered but decided against a native C++ implementation due to performance trade-offs.
- Future optimizations include reducing unnecessary calls to getLineContent and improving the Find command.