Mastodon

How Long to the Major macOS Text Editors Take to Open Huge Files?

Posted by Matt Birchler
— 2 min read

A part of my work often involves taking massive CSV files (1GB+) and analyzing the data in them. I typically use Visual Studio Code to do this, as it has the best search functionality out of the box than any other editor I've tried. But while the functionality is great, the performance is not always mind-boggling, so I've wondered if this Electron app could be beat by another more "native" Mac app. Today, I took a 1.5GB file I needed for work and opened it in the 4 editors on my work Mac (a 2015 15" MacBook Pro, 2.2 GHz Intel Core i7, and 16GB RAM).

Here's how long each app took to open the file:

Basically, BBEdit was remarkably fast at opening the file, being 4x faster than Visual Studio Code and 20x faster than Sublime. And then in terms of saving changes to the file, most apps were in the same ballpark, which I assume is because this is reliant on my SSD's ability to save the data, not the app doing anything special.

I'll leave the functionality differences be discussed by others, but is still think VSCode has the most for me, but it does have an annoying limitation of not showing more than 20,000 search results, while BBEdit shows you as many as there are in the file, even if there are over 1 million results. This isn't always an issue, but it can often be a problem with data sets this large. Sublime Text and Atom also show you unlimited results, but Atom feels sloooow most of the time and Sublime takes forever to load large files, so they're not my preferences.

Update: Patrick Seemann has some numbers from command line-based editors.

Update 2: Per Michael Tsai's request, I've tried TextEdit, Excel, and Numbers as well. Excel took 84 seconds to open just 83% of the document (1,252,352 rows) and would not load the rest. Meanwhile, I gave Numbers 10 minutes and it didn't load the file. I have no idea if it ever would have, but I didn't want to subject my CPU to more time at full blast.

Update 3: I updated the chart to look a little better and accurately reflect Excel's open time. Numbers was removed due to it never actually opening the file.