Bug 8156 – Very slow compilation with string-imported file ~100 MiB

Status
RESOLVED
Resolution
FIXED
Severity
critical
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-05-27T22:43:05Z
Last change time
2020-11-05T04:15:39Z
Keywords
performance, pull
Assigned to
No Owner
Creator
Denis Shelomovskii

Comments

Comment #0 by verylonglogin.reg — 2012-05-27T22:43:05Z
dmd takes 14 s with full load of one CPU core to include 40 MiB file as a string import on my PC. During this dmd process slowly increases its memory using by 2-3 MiB/s.
Comment #1 by code — 2012-05-29T06:35:25Z
I run into longer compilation times at about 300MB but at that point it's mainly due to paging in consecutive runs. Are you processing/casting the string? What OS are you on? Are you seeing O(N^2) behavior?
Comment #2 by verylonglogin.reg — 2012-05-29T08:26:35Z
(In reply to comment #1) > I run into longer compilation times at about 300MB but at that > point it's mainly due to paging in consecutive runs. > > Are you processing/casting the string? No CT processing, casting doesn't matter. > What OS are you on? Windows XP SP3 > Are you seeing O(N^2) behavior? Yes. My timings in CSV format: --- Size, MiB;Time, s 1;0 13.4;2 28.3;7 40.5;17 96.7;111 215;582 --- y = a * x^b approximation: time(size) = 6.79E-00003 x^2.117 with R^2 = 0.9999
Comment #3 by boris2.9 — 2020-08-12T04:50:55Z
I've pushed two patches to resolve this old bug. First part is here : https://github.com/dlang/dmd/pull/11554 I'll link the second to this issue.
Comment #4 by dlang-bot — 2020-08-12T05:21:02Z
@BorisCarvajal created dlang/dmd pull request #11555 "Fix Issue 8156 - Optimize string comdats name generation (Windows)" fixing this issue: - Fix Issue 8156 - Optimize string comdats name generation (Windows) https://github.com/dlang/dmd/pull/11555
Comment #5 by dlang-bot — 2020-11-05T04:15:39Z
dlang/dmd pull request #11555 "Fix Issue 8156 - Optimize string comdats name generation (Windows)" was merged into master: - 3af440b76d36f2d6db561b184807f5132eeb929d by Boris Carvajal: Fix Issue 8156 - Optimize string comdats name generation (Windows) https://github.com/dlang/dmd/pull/11555