Software version numbers clearly indicate the place of a given release in the product’s lifecycle, but at the same time, they do not always reflect the impact of the updates inside it. This is the case with DHTMLX Gantt 10.0.3. Even though it is a patch release, it includes a range of significant updates aimed at boosting Gantt performance in loading and editing scenarios with large datasets of up to 100,000 tasks.
To show the true value of this update, we compared v10.0.3 with four previous Gantt releases across key performance metrics related to loading and editing of the Gantt chart, using workloads from 1,000 to 100,000 tasks structured as flat chains and project trees.
DHTMLX Gantt versions compared: v8.0.11, v9.0.15, v9.1.4, v10.0.0, and v10.0.3.
What to Expect at 100,000 Tasks
To give you a general impression of current performance capabilities in DHTMLX Gantt, it is best to take a quick look at how much faster v10.0.3 handles stress tests with 100,000 tasks than previous Gantt versions:
- Bulk editing up to 76x faster
At 100,000 flat tasks, v10.0.3 needs 389 ms to process a batch of 300 editing operations, while earlier Gantt versions require almost 30 seconds to complete this test.
- Initial load time (TTR test) up to 44x faster
With 100,000 flat tasks and auto-scheduling disabled, v10.0.3 reaches the ready state in 716 ms. With previous versions, this workload takes 31.4–31.6 seconds.
- Single-task editing is faster by 28-29%
When using v10.0.3, a common editing operation like moving a task in a 100,000-task project tree is completed in 252 ms, noticeably reducing the completion time compared to older Gantt versions.
Now, let us delve deeper into the test results that unveil more interesting insights into how Gantt performance has improved in recent years.
Bulk Editing
We start with one of the most revealing test scenarios, where the Gantt chart has to handle a batch of 100 updates, 100 deletions, and 100 insertions applied simultaneously, with auto-scheduling disabled.
| Dataset size & shape | v8.0.11 | v9.0.15 | v9.1.4 | v10.0.0 | v10.0.3 | Speedup |
| 1,000 tasks (flat) | 162 ms | 163 ms | 166 ms | 172 ms | 41 ms | ~4x |
| 10,000 tasks (flat) | 1,378 ms | 1,397 ms | 1,402 ms | 1,405 ms | 65 ms | ~21.5x |
| 100,000 tasks (flat) | 29,487 ms | 29,617 ms | 29,659 ms | 29,659 ms | 389 ms | ~76x |
| 100,000 tasks (tree) | 14,129 ms | 14,372 ms | 14,345 ms | 14,560 ms | 404 ms | ~35.5x |
As the table above shows, v10.0.3 has a substantial advantage even at modest workloads from 1,000 to 10,000 tasks, and the gap only widens as the number of tasks grows, reaching its peak on the 100,000-task flat dataset. Interestingly, the performance gap is smaller when the same 100,000 tasks are organized as a project tree, but v10.0.3 still completes the test much faster than its predecessors.
You may wonder how these results can be affected by enabling auto-scheduling. It is a fair question. In real projects, this mode helps recalculate dependencies between project tasks, and bulk edits can trigger a whole series of such recalculations. Adding auto-scheduling to the workload increases the execution time, but v10.0.3 still demonstrates a solid improvement in the 100,000-task project tree test result: 1,086 ms against 14,445–14,745 ms in v8.0.11 through v9.1.4.
Initial Load Time (TTR Test)
After learning how quickly different versions of DHTMLX Gantt respond to complex editing operations, it is reasonable to ask how long they take to become fully operational in the first place. The Time to Ready (TTR) helps answer this question by measuring the total time it takes for all tested Gantt versions to process the flat chain dataset with auto-scheduling disabled and be ready for user interactions.
| Dataset size | v8.0.11 | v9.0.15 | v9.1.4 | v10.0.0 | v10.0.3 | Speedup |
| 10,000 tasks | 425 ms | 440 ms | 442 ms | 442 ms | 126 ms | ~3.5x |
| 50,000 tasks | 8,116 ms | 8,096 ms | 8,095 ms | 8,050 ms | 399 ms | ~20.3x |
| 100,000 tasks | 31,520 ms | 31,635 ms | 31,465 ms | 31,397 ms | 716 ms | ~44x |
Here we can see a performance pattern similar to the one observed in bulk editing: the larger the workload, the more noticeable the load time advantage of v10.0.3 over previous Gantt versions becomes.
Single-Task Editing
A single-task edit puts considerably less pressure on the Gantt chart, so the performance gap between versions is not as big as with bulk edits. This metric measures how long it takes to move a single task one month forward with auto-scheduling disabled.
| Dataset size & shape | v8.0.11 | v9.0.15 | v9.1.4 | v10.0.0 | v10.0.3 |
| 10,000 tasks (tree) | 45 ms | 48 ms | 50 ms | 49 ms | 38 ms |
| 50,000 tasks (tree) | 176 ms | 182 ms | 185 ms | 186 ms | 133 ms |
| 100,000 tasks (tree) | 348 ms | 351 ms | 350 ms | 356 ms | 252 ms |
| 100,000 tasks (flat) | 385 ms | 385 ms | 392 ms | 385 ms | 316 ms |
The results show a consistent improvement with v10.0.3 across all tested scenarios, with the largest gains appearing at 100,000 project tree tasks, the point at which responsiveness is often hard to maintain.
Overall, the test results clearly illustrate that performance optimizations introduced in v10.0.3 significantly speed up loading and editing operations with large datasets, especially at 100,000 tasks.
The full list of updates and bug fixes delivered in v10.0.3 is provided in the “What’s New” section of the Gantt documentation.
DHTMLX Gantt v10.0.3 is available now. If you are unfamiliar with our product and need a performant JavaScript Gantt tool for enterprise-level workloads, download a free 30-day trial version of DHTMLX Gantt and give it a try. Existing customers can access v10.0.3 via their Client’s Area.
We’d love to hear how v10.0.3 performs in your own projects. Reach out and share your experience with DHTMLX Gantt.