x64 build time 3x slower?

Johnson Jones via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Aug 7 23:00:15 PDT 2017


On Tuesday, 8 August 2017 at 00:01:05 UTC, Johnson Jones wrote:
> On Monday, 7 August 2017 at 22:56:37 UTC, Moritz Maxeiner wrote:
>> On Monday, 7 August 2017 at 22:19:57 UTC, Johnson Jones wrote:
>>> Why would that be. Program take about 4 seconds to compile 
>>> and 12 for x64. There is fundamentally no difference between 
>>> the two versions. I do link in gtk x86 and gtk x64 depending 
>>> on version, and that's it as far as I can tell.
>>>
>>> Debug
>>> x86         4
>>> x64         12
>>> Release
>>> x86         3
>>> x64         5
>>>
>>> The timings are pretty steady.
>>
>> Split up the build time in compile time and link time and see 
>> how the difference is distributed between the two.
>> If it's distributed overwhelmingly to the link time it could 
>> be that you're using Microsoft's linker for x64 and OPTLINK 
>> for x86?
>
> Yeah, I guess that is probably it. Forgot that two different 
> linkers were used... although, Not much is being linked. Visual 
> D doesn't split up the two easily, I suppose I can't separate 
> them. It should probably do individual profiling between the 
> two.
>
> Usually the build times are pretty close and I don't recall it 
> being slow when I first started building, and my code hasn't 
> changed much... But I did modify a few options such as debug 
> diagnostics and such as those were causing visual studio to 
> freeze.
>
> I guess I could perfmon it to see what exactly it is doing.

It takes about 3 seconds to write the map file(I have it 
generating cross references, not sure what it actually does but I 
thought it might help with debugging issues. I have it enabled 
for both x86 and x64. I thought I disabled
it with no differences, but maybe I missed it).

It takes another 4 seconds to create the pdb.

But it seems that about 6 seconds are done doing thing

7:13:14.7148555 
PM	link.exe	9860	QueryStandardInformationFile	C:\D\Libraries\x64\gtkd.lib	SUCCESS	AllocationSize: 84,443,136, EndOfFile: 84,439,450, NumberOfLinks: 1, DeletePending: False, Directory: False
7:13:14.7148665 
PM	link.exe	9860	CreateFileMapping	C:\D\Libraries\x64\gtkd.lib	SUCCESS	SyncType: SyncTypeOther
7:13:15.7801685 PM	ServiceHub.IdentityHost.exe	4952	Thread 
Exit		SUCCESS	Thread ID: 11224, User Time: 0.0000000, Kernel 
Time: 0.0000000
7:13:17.2481064 PM	ServiceHub.VSDetouredHost.exe	5004	Thread 
Create		SUCCESS	Thread ID: 10976
7:13:17.4141043 PM	devenv.exe	1040	Thread Create		SUCCESS	Thread 
ID: 11200
7:13:17.8990951 PM	DParserCOMServer.exe	4492	Thread 
Create		SUCCESS	Thread ID: 9176
7:13:18.7481654 PM	ServiceHub.VSDetouredHost.exe	5004	Thread 
Exit		SUCCESS	Thread ID: 10976, User Time: 0.0000000, Kernel 
Time: 0.0000000
7:13:18.9163321 PM	devenv.exe	1040	Thread Exit		SUCCESS	Thread 
ID: 11200, User Time: 0.0000000, Kernel Time: 0.0000000
7:13:19.4011479 PM	DParserCOMServer.exe	4492	Thread 
Exit		SUCCESS	Thread ID: 9176, User Time: 0.0000000, Kernel Time: 
0.0000000
7:13:19.9681080 PM	ServiceHub.VSDetouredHost.exe	5004	Thread 
Create		SUCCESS	Thread ID: 10416


Not sure what is happening in there but it seems like Visual D or 
Visual Studio issue rather than dmd ;/


I'll look in to it some more to see what I can find.


More information about the Digitalmars-d-learn mailing list