Moby Dick Workout (2022)
The Moby Dick Performance Benchmark (2022)
Posted on 12 Apr 2022
Is this the most urgent question in existence? Probably not, but I frequently find myself wondering: Exactly how many items should a todo list be capable of managing?
The Philosophy of Scaling
I believe that productivity software should be able to scale effectively to any "user-generated" content. While I don't expect a standard application to effortlessly process multi-gigabyte system logs, it should be able to handle anything a human can realistically write.
"If an app works well with 'Moby Dick,' then that’s a good indication that it will handle my needs also."
I recognize that Melville's prose is longer and more complex than anything I will ever produce. However, using it as a baseline provides a reliable stress test.
The "Workout" Process
To put an app through its paces, follow these steps:
- Paste the text of Moby Dick into the app.
- Repeat this process times (or until you lose interest).
- Open the macOS
Activity Monitor. - Verify if the Memory usage remains within an acceptable range.
The Logic Flow
Technical Considerations
Modern computing power is immense; compared to the speed of a CPU, the text of Moby Dick is essentially .
Mathematically, the test looks like this:
If an application fails this basic test, it suggests there may be underlying architectural problems. However, remember that this is merely a benchmark:
- A "good" app for your specific workflow might fail this.
- A "bad" app for your needs might pass it.
Test Resources
Below are the files I use to benchmark my own software, such as the Bike Outliner.
| File Name | Format | Primary Use Case |
|---|---|---|
MobyDick.bike | .bike | Testing the Bike Outliner app |
MobyDick.opml | .opml | Testing general outliner applications |
MobyDick.markdown | .markdown | Testing Markdown-based editors |
Example Data Structure
If you were to look at the raw data being injected, it would look something like this:
# Moby Dick
Call me Ishmael. Some years ago—never mind how long precisely—having little or no money in my purse...
[...thousands of lines of text...]
Note: Ensure you are monitoring the Memory tab specifically to catch memory leaks during the repetition phase.