[cfe-dev] clang-cl.exe (32bit) dog slow, capping at ~16.5% CPU

Nikodemus Siivola via cfe-dev cfe-dev at lists.llvm.org
Thu Jun 8 00:56:30 PDT 2017


I've been building from the command line, the IDE is a foreign land to me,
but I'll give it a try. :)

Thanks!

On 8 Jun 2017 10.53, "NAKAMURA Takumi" <geek4civic at gmail.com> wrote:

> Assuming you are using Visual Studio IDE, choose build configuration in
> toolbar and build again. Debug by default.
> CMAKE_BUILD_TYPE should not be set for Visual Studio Generator.
>
> On Thu, Jun 8, 2017 at 4:50 PM Nikodemus Siivola <
> nikodemus at random-state.net> wrote:
>
>> Aha! Release/bin has just llvm-lit.py in it, whereas Debug/bin has
>> everything. So not a release build after all.
>>
>> $ grep CMAKE_BUILD_TYPE CMakeCache.txt
>> CMAKE_BUILD_TYPE:UNINITIALIZED=Release
>>
>> ...which seems odd both for claiming to be uninitialized and not matching
>> the binaries.
>>
>> So I should delete that line and rebuild with
>>
>> cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo
>>
>> ?
>>
>> Cheers,
>>
>>  -- nikodemus
>>
>>
>> On Thu, Jun 8, 2017 at 8:36 AM, NAKAMURA Takumi <geek4civic at gmail.com>
>> wrote:
>>
>>> I wonder you specified -DCMAKE_BUILD_TYPE=Release to Visual Studio
>>> Generator.
>>>
>>> Make sure;
>>> - Delete CMAKE_BUILD_TYPE
>>> - clang-cl.exe is generated as Release\bin\clang-cl.exe in your build
>>> tree.
>>>   Visual Studio (and msbuild.exe) has multiple configurations.
>>>
>>>
>>> On Thu, Jun 8, 2017 at 1:57 AM Nikodemus Siivola via cfe-dev <
>>> cfe-dev at lists.llvm.org> wrote:
>>>
>>>> One core out of eight sounds plausible indeed! Never thought of that,
>>>> more used to *nix style usage numbers where 1.0 = one core. :)
>>>>
>>>> Did a release build:
>>>>
>>>>     cmake -G "Visual Studio 14 2015" \
>>>>       -DCMAKE_INSTALL_PREFIX=C:\LLVM \
>>>>       -DCMAKE_BUILD_TYPE=Release \
>>>>       -DLLVM_TARGETS_TO_BUILD=X86 \
>>>>       -DLLVM_ENABLE_CXX1Y=On \
>>>>       ../
>>>>
>>>> That clang still takes >10s to build a hello-world.
>>>>
>>>> Any suggestions?
>>>>
>>>> Cheers,
>>>>
>>>>  -- nikodemus
>>>>
>>>>
>>>> On Thu, Jun 1, 2017 at 6:11 PM, David Blaikie <dblaikie at gmail.com>
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Thu, Jun 1, 2017 at 12:48 AM Hahnfeld, Jonas via cfe-dev <
>>>>> cfe-dev at lists.llvm.org> wrote:
>>>>>
>>>>>> > cmake -G "MinGW Makefiles" \
>>>>>>
>>>>>>   -DCMAKE_INSTALL_PREFIX=C:\LLVM \
>>>>>>
>>>>>>   -DCMAKE_BUILD_TYPE=Debug \
>>>>>>
>>>>>>   -DLLVM_ENABLE_ASSERTIONS=On \
>>>>>>
>>>>>>   -DLLVM_TARGETS_TO_BUILD=X86 \
>>>>>>
>>>>>>   -DLLVM_ENABLE_CXX1Y=On \
>>>>>>
>>>>>>   ../
>>>>>>
>>>>>>
>>>>>>
>>>>>> CMAKE_BUILD_TYPE=Debug will result in a non-optimized compiler.
>>>>>> Although I don’t have numbers at hand, you might want to set
>>>>>> CMAKE_BUILD_TYPE=Release.
>>>>>>
>>>>>
>>>>> Also  -DLLVM_ENABLE_ASSERTIONS=On
>>>>>
>>>>> The build system at some point had a warning informing users that this
>>>>> might produce an order of magnitude (or more) slower compiler.
>>>>>
>>>>> I'd suggest you keep an optimized and unoptimized compiler around.
>>>>> Though even then, Hello World doesn't take me 10 seconds to compile... so
>>>>> maybe there's other things going on. Sounds like you'd want one set of LLVM
>>>>> stuff with all the debugging knobs turned on (exactly as you've built) &
>>>>> use that with your frontend, and another, release build, for running clang,
>>>>> etc for practical porpoises.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Jonas
>>>>>>
>>>>>>
>>>>>>
>>>>>> *From:* cfe-dev [mailto:cfe-dev-bounces at lists.llvm.org] *On Behalf
>>>>>> Of *Nikodemus Siivola via cfe-dev
>>>>>> *Sent:* Thursday, June 1, 2017 9:43 AM
>>>>>> *To:* cfe-dev at lists.llvm.org
>>>>>> *Subject:* [cfe-dev] clang-cl.exe (32bit) dog slow, capping at
>>>>>> ~16.5% CPU
>>>>>>
>>>>>>
>>>>>>
>>>>>> I was wondering why compiles were so slow and noticed that
>>>>>> clang-cl.exe is never consuming more than ~16.5% CPU on my laptop. This is
>>>>>> an i7-7700HQ, 32GB memory, running Windows 10 Pro.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Memory and disk use appear trivial as well, and the computer was
>>>>>> otherwise mostly idle at the time.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Compiling a trivial hello-world takes 11 seconds:
>>>>>>
>>>>>>
>>>>>>
>>>>>> $ clang --version
>>>>>>
>>>>>> clang version 4.0.1
>>>>>>
>>>>>> Target: i686-pc-windows-msvc
>>>>>>
>>>>>> Thread model: posix
>>>>>>
>>>>>> InstalledDir: C:\LLVM\bin
>>>>>>
>>>>>>
>>>>>>
>>>>>> $ cat foo.cpp
>>>>>>
>>>>>> #include <iostream>
>>>>>>
>>>>>>
>>>>>>
>>>>>> int main()
>>>>>>
>>>>>> {
>>>>>>
>>>>>>     std::cout << "Yo" << std::endl;
>>>>>>
>>>>>>     return 0;
>>>>>>
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>>> $ time clang-cl foo.cpp
>>>>>>
>>>>>>
>>>>>>
>>>>>> real    0m11.886s
>>>>>>
>>>>>> user    0m0.015s
>>>>>>
>>>>>> sys     0m0.015s
>>>>>>
>>>>>>
>>>>>>
>>>>>> Compiling the same program under the Linux subsystem and clang-3.5
>>>>>> takes 0.16seconds. The Visual Studio commandline compiler is likewise
>>>>>> almost instant.
>>>>>>
>>>>>>
>>>>>>
>>>>>> This is release_40 from one of the git mirrors, build built as part
>>>>>> of the LLVM tree using Visual Studio 2015 command prompt, with (I think,
>>>>>> not 100% sure, don't know cmake well enough to figure out after the fact)
>>>>>> the following cmake invovations:
>>>>>>
>>>>>>
>>>>>>
>>>>>> cmake -G "MinGW Makefiles" \
>>>>>>
>>>>>>   -DCMAKE_INSTALL_PREFIX=C:\LLVM \
>>>>>>
>>>>>>   -DCMAKE_BUILD_TYPE=Debug \
>>>>>>
>>>>>>   -DLLVM_ENABLE_ASSERTIONS=On \
>>>>>>
>>>>>>   -DLLVM_TARGETS_TO_BUILD=X86 \
>>>>>>
>>>>>>   -DLLVM_ENABLE_CXX1Y=On \
>>>>>>
>>>>>>   ../
>>>>>>
>>>>>> cmake --build .
>>>>>>
>>>>>>
>>>>>>
>>>>>> Did I pick spectacularly stupid build options or something?
>>>>>>
>>>>>>
>>>>>> Any suggestions for figuring out what is going on? (Windows is not my
>>>>>> regular platform so I'm a bit out of depth here.)
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>>
>>>>>>
>>>>>>  -- nikodemus
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> cfe-dev mailing list
>>>>>> cfe-dev at lists.llvm.org
>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>>>>>
>>>>>
>>>> _______________________________________________
>>>> cfe-dev mailing list
>>>> cfe-dev at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170608/7e7cf4dd/attachment.html>


More information about the cfe-dev mailing list