Simplifying druntime and phobos by getting rid of "shared static this()" blocks
Andrei Alexandrescu via Digitalmars-d
digitalmars-d at puremagic.com
Wed May 24 09:40:44 PDT 2017
On 5/24/17 4:49 PM, Steven Schveighoffer wrote:
> On 5/23/17 3:47 PM, Andrei Alexandrescu wrote:
>> https://github.com/dlang/phobos/pull/5421
>>
>> Looking forward to more in the same vein, please contribute! We have 25
>> left in phobos and 12 in druntime. A big one will be making the GC
>> lazily initialize itself. -- Andrei
>
> So every time I do:
>
> writeln(...)
>
> It has to go through a check to see if it's initialized? Using a delegate?
The delegate is not called in the steady state.
> Has the performance of this been tested?
Always a good idea. My test bed:
void main()
{
import std.stdio;
foreach (i; 0 .. 10_000_000) writeln("1234567890");
}
On my laptop using dmd, phobos master, best of 21 runs using "time test
>/dev/null": 1.371 seconds.
With initOnce: 1.469 seconds. Yuck!
So I added double checking:
https://github.com/dlang/phobos/pull/5421/commits/6ef3b5a6eacfe82239b7bbc4b0bc9f38adc6fe91
With the double checking: 1.372 seconds. So back to sanity.
Thanks for asking me to measure!
Andrei
More information about the Digitalmars-d
mailing list