[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cmake
Subject:    Re: [CMake] CMake Project Generation Speedup
From:       "J. Caleb Wherry" <calebwherry () gmail ! com>
Date:       2019-03-20 20:57:11
Message-ID: CAJxY6Xqcm+cM2r3FUs7zhs3TPzi1BfvkYroBSvkgEELm=-jPZQ () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


I was also surprised when "cmake --trace" gave 0 information related to the
generate step. I assume this is expected behavior?

Oh and:

CMake: 3.13.4
Visual Studio 2017 15.9.9
Win7

-Caleb

On Wed, Mar 20, 2019 at 4:53 PM J. Caleb Wherry <calebwherry@gmail.com>
wrote:

> Did anything ever come of this?
>
> I am in a similar boat: we have >800 targets on our full build (native
> C++, Managed C++, C#, Java, CUDA, etc) and the majority of the time for the
> configure/generate steps takes place in the generate step (>70%).
>
> I understand there is a lot of IO since the generate step has to write the
> project files and filters for each C++ project (the majority of our
> projects) for VS generators (what we use). I'm just looking to see if there
> is anything to look at or potentially speedup up the generate step besides
> "get a faster drive".
>
> Thanks!
> -Caleb
>
> On Thu, Nov 17, 2016 at 11:15 AM Damian <damian.campeanu@gmail.com> wrote:
>
>> Hi all,
>>
>> We are still in the process of switching our large Make-based build to
>> CMake. One of the issues we're running into is the time it takes to reparse
>> and regenerate the CMake project (whether ninja, VS, or make) after
>> touching any CMake file. To give you an idea, we have about 1000 targets
>> and that takes a good 2 min for CMake to rerun.
>>
>> Are there any plans to speed this up? Maybe parallelize it in some way or
>> do a better job regenerating only what needs regenerating? Is there
>> anything we can do on our side to reduce our regeneration times?
>>
>> For example, if using a VS generator, each directory in the source that
>> has a CMakeLists.txt gets a .vcproj and .sln generated. Ideally, if I touch
>> one of those CMakeLists.txt, only that .sln/.vcproj would get regenerated.
>>
>> Thanks for any help.
>> --
>>
>> Powered by www.kitware.com
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Kitware offers various services to support the CMake community. For more
>> information on each offering, please visit:
>>
>> CMake Support: http://cmake.org/cmake/help/support.html
>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/cmake
>
>
>
> --
> J. Caleb Wherry
> *Scientific Software Engineer*
>
> <http://www.calebwherry.com>
> http://www.calebwherry.com
> +1 (615) 708-5651
> calebwherry@gmail.com
>


-- 
J. Caleb Wherry
*Scientific Software Engineer*

<http://www.calebwherry.com>
http://www.calebwherry.com
+1 (615) 708-5651
calebwherry@gmail.com

[Attachment #5 (text/html)]

<div dir="ltr">I was also surprised when &quot;cmake --trace&quot; gave 0 information \
related to the generate step. I assume this is expected \
behavior?<div><br></div><div>Oh and:</div><div><br></div><div>CMake: \
3.13.4</div><div>Visual Studio 2017 \
15.9.9</div><div>Win7</div><div><br></div><div>-Caleb</div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 20, 2019 at 4:53 PM \
J. Caleb Wherry &lt;<a \
href="mailto:calebwherry@gmail.com">calebwherry@gmail.com</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Did \
anything ever come of this?<div><br></div><div>I am in a similar boat: we have \
&gt;800 targets on our full build (native C++, Managed C++, C#, Java, CUDA, etc) and \
the majority of the time for the configure/generate steps takes place in the generate \
step (&gt;70%).</div><div><br></div><div>I understand there is a lot of IO since the \
generate step has to write the project files and filters for each C++ project (the \
majority of our projects) for VS generators (what we use). I&#39;m just looking to \
see if there is anything to look at or potentially speedup up the generate step \
besides &quot;get a faster \
drive&quot;.</div><div><br></div><div>Thanks!</div><div>-Caleb</div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 17, 2016 at 11:15 \
AM Damian &lt;<a href="mailto:damian.campeanu@gmail.com" \
target="_blank">damian.campeanu@gmail.com</a>&gt; wrote:<br></div><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div>Hi \
all,<br><br></div>We are still in the process of  switching our large Make-based \
build to CMake. One of the issues we&#39;re  running into is the time it takes to \
reparse and regenerate the CMake  project (whether ninja, VS, or make) after touching \
any CMake file. To  give you an idea, we have about 1000 targets and that takes a \
good 2 min  for CMake to rerun.<br><br></div>Are there any plans to speed this up? 
Maybe parallelize it in some way or do a better job regenerating only 
what needs regenerating? Is there anything we can do on our side to 
reduce our regeneration times?<br><br>For example, if using a VS 
generator, each directory in the source that has a CMakeLists.txt gets a
 .vcproj and .sln generated. Ideally, if I touch one of those 
CMakeLists.txt, only that .sln/.vcproj would get regenerated.<br><br></div>Thanks for \
                any help.</div>
-- <br>
<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" \
target="_blank">www.kitware.com</a><br> <br>
Please keep messages on-topic and check the CMake FAQ at: <a \
href="http://www.cmake.org/Wiki/CMake_FAQ" rel="noreferrer" \
target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br> <br>
Kitware offers various services to support the CMake community. For more information \
on each offering, please visit:<br> <br>
CMake Support: <a href="http://cmake.org/cmake/help/support.html" rel="noreferrer" \
target="_blank">http://cmake.org/cmake/help/support.html</a><br> CMake Consulting: <a \
href="http://cmake.org/cmake/help/consulting.html" rel="noreferrer" \
target="_blank">http://cmake.org/cmake/help/consulting.html</a><br> CMake Training \
Courses: <a href="http://cmake.org/cmake/help/training.html" rel="noreferrer" \
target="_blank">http://cmake.org/cmake/help/training.html</a><br> <br>
Visit other Kitware open-source projects at <a \
href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" \
target="_blank">http://www.kitware.com/opensource/opensource.html</a><br> <br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/cmake" rel="noreferrer" \
target="_blank">http://public.kitware.com/mailman/listinfo/cmake</a></blockquote></div><br \
clear="all"><div><br></div>-- <br><div dir="ltr" \
class="gmail-m_1294078152141518832gmail_signature"><div>J. Caleb \
Wherry</div><i>Scientific Software Engineer</i><div><br><a \
href="http://www.calebwherry.com" target="_blank"></a><div><a \
href="http://www.calebwherry.com" \
target="_blank">http://www.calebwherry.com</a><br><span><span title="Call with Google \
Voice"><span title="Call with Google Voice">+1 (615) \
708-5651</span></span></span><div><a href="mailto:calebwherry@gmail.com" \
target="_blank">calebwherry@gmail.com</a></div></div></div></div> \
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" \
class="gmail_signature"><div>J. Caleb Wherry</div><i>Scientific Software \
Engineer</i><div><br><a href="http://www.calebwherry.com" target="_blank"></a><div><a \
href="http://www.calebwherry.com" \
target="_blank">http://www.calebwherry.com</a><br><span><span title="Call with Google \
Voice"><span title="Call with Google Voice">+1 (615) \
708-5651</span></span></span><div><a href="mailto:calebwherry@gmail.com" \
target="_blank">calebwherry@gmail.com</a></div></div></div></div>



-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: \
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information \
on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at \
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic