<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.slicer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=CarlosLuque</id>
	<title>Slicer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.slicer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=CarlosLuque"/>
	<link rel="alternate" type="text/html" href="https://www.slicer.org/wiki/Special:Contributions/CarlosLuque"/>
	<updated>2026-06-14T01:14:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61452</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61452"/>
		<updated>2019-09-17T07:53:42Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || Hard disk Drive (HDD) || Solid State Drive (SSD) || Solid State Drive (SSD)&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake versions ''3.14.4'' and ''nightly (3.15.20190910-g39c58dd)'', and the master branch of Slicer repository (commit: ''e091a2b016eef4a621fce1dfecc6faa7f6433b51'').&lt;br /&gt;
&lt;br /&gt;
The 21 tests were generated in different configuration variables. All tests were executed ''five times'' in the folder &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build&amp;lt;/code&amp;gt; after the Slicer had been built.  &lt;br /&gt;
&lt;br /&gt;
The modified variables are:  ''Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES''. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The below table shows the command lines and the time averages for each test in each CMake version. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Test name &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Command Line &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake 3.14.4 &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake nightly (3.15.20190910-g39c58dd) &lt;br /&gt;
|-&lt;br /&gt;
! Desktop1 !! Desktop2 !! Surface !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 340.84 || 305.30 || 314.50 || 156.44 || 118.46 || 112.60&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 254.40 || 238.58 || 265.64 || 118.43 || 99.90 || 93.55&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 192.34 || 177.33 || 191.21 || 95.37 || 82.88 || 76.39&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| cmake  -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 129.68 || 118.47 || 118.83 || 72.39 || 65.43 || 59.20&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 129.98 || 119.35 || 117.70 || 75.40 || 65.99 || 60.25&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 313.28 || 280.61 || 286.78 || 120.15 || 109.32 || 105.31&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 314.07 || 309.06 || 292.90 || 119.62 || 133.38 || 108.71&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 295.44 || 287.10 || 280.79 || 108.57 || 111.68 || 96.79&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 266.17 || 250.50 || 252.05 || 107.73 || 99.07 || 91.28&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 99.19 || 93.70 || 92.71 || 46.81 || 45.98 || 41.30&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 5.53 || 5.35 || 4.89 || 5.62 || 5.18 || 4.66&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 5.18 || 5.21 || 4.85 || 5.44 || 4.98 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 5.38 || 5.15 || 4.94 || 5.35 || 5.00 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 5.47 || 5.18 || 4.82 || 5.34 || 4.99 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 5.56 || 5.16 || 4.84 || 5.16 || 5.00 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 5.25 || 5.13 || 4.88 || 5.60 || 4.94 || 4.60&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.99 || 32.16 || 31.96 || 23.80 || 21.64 || 20.38&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 6.47 || 6.18 || 5.86 || 6.43 || 5.93 || 5.46&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.11 || 28.32 || 26.55 || 15.45 || 16.66 || 13.33&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 97.88 || 83.01 || 83.64 || 41.90 || 41.53 || 36.40&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 117.22 || 119.79 || 111.90 || 68.50 || 69.11 || 56.11&lt;br /&gt;
|}&lt;br /&gt;
The below figures show the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance4144.png | 1000px]]&lt;br /&gt;
[[File:CMakePerformance415Nightly.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* When the number of the targets is decreased, the time saving is meaningful in CMake versions. In the desktop 1, the time reduction is around 62% (version 4.14.4) and 52% (version 3.15.20190910-g39c58dd) from four targets to one target. In the desktop2, the time reduction is around 62% (version 4.14.4) and 44% (version 3.15.20190910-g39c58dd) and in the surface, it is  around 63% (version 4.14.4) and 46% (version 3.15.20190910-g39c58dd). Moreover, the time reduction averages from version 4.14 to version 3.15.20190910-g39c58dd are 51%, 54%, and 58% in the desktop 1, desktop 2, and surface, respectively.&lt;br /&gt;
* The hard disk technologies affect the time reduction. If the hard disk technology is SSD, the time reduction average is 7% (version 4.14.4) and 18% (version 3.15.20190910-g39c58dd). &lt;br /&gt;
* The variable ''Slicer_BUILD_QTLOADABLEMODULES'' has a relevant impact on generate time. The time reduction average is 70% (version 4.14.4), and  65% (version 3.15.20190910-g39c58dd) when the variable ''Slicer_BUILD_QTLOADABLEMODULES'' is not active and four targets. All remaining variables affect lesser in the reduction time.&lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
The number of the targets, the hard disk technologies and the variable ''Slicer_BUILD_QTLOADABLEMODULES'' have an important impact on the the CMake configuration time in both CMake versions. The hard technologies in the CMake version 4.14.4 affects less than the version nightly (3.15.20190910-g39c58dd). &lt;br /&gt;
&lt;br /&gt;
The CMake version nightly (3.15.20190910-g39c58dd) performs better than the version 4.14.4 in the configuration time. The time reduction average is 46% in one target.&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61448</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61448"/>
		<updated>2019-09-16T11:46:11Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || Hard disk Drive (HDD) || Solid State Drive (SSD) || Solid State Drive (SSD)&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake versions ''3.14.4'' and ''nightly (3.15.20190910-g39c58dd)'', and the master branch of Slicer repository (commit: ''e091a2b016eef4a621fce1dfecc6faa7f6433b51'').&lt;br /&gt;
&lt;br /&gt;
The 21 tests were generated in different configuration variables. All tests were executed ''five times'' in the folder &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build&amp;lt;/code&amp;gt; after the Slicer had been built.  &lt;br /&gt;
&lt;br /&gt;
The modified variables are:  ''Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES''. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The below table shows the command lines and the time averages for each test in each CMake version. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Test name &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Command Line &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake 3.14.4 &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake nightly (3.15.20190910-g39c58dd) &lt;br /&gt;
|-&lt;br /&gt;
! Desktop1 !! Desktop2 !! Surface !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 340.84 || 305.30 || 314.50 || 156.44 || 118.46 || 112.60&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 254.40 || 238.58 || 265.64 || 118.43 || 99.90 || 93.55&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 192.34 || 177.33 || 191.21 || 95.37 || 82.88 || 76.39&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| cmake  -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 129.68 || 118.47 || 118.83 || 72.39 || 65.43 || 59.20&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 129.98 || 119.35 || 117.70 || 75.40 || 65.99 || 60.25&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 313.28 || 280.61 || 286.78 || 120.15 || 109.32 || 105.31&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 314.07 || 309.06 || 292.90 || 119.62 || 133.38 || 108.71&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 295.44 || 287.10 || 280.79 || 108.57 || 111.68 || 96.79&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 266.17 || 250.50 || 252.05 || 107.73 || 99.07 || 91.28&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 99.19 || 93.70 || 92.71 || 46.81 || 45.98 || 41.30&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 5.53 || 5.35 || 4.89 || 5.62 || 5.18 || 4.66&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 5.18 || 5.21 || 4.85 || 5.44 || 4.98 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 5.38 || 5.15 || 4.94 || 5.35 || 5.00 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 5.47 || 5.18 || 4.82 || 5.34 || 4.99 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 5.56 || 5.16 || 4.84 || 5.16 || 5.00 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 5.25 || 5.13 || 4.88 || 5.60 || 4.94 || 4.60&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.99 || 32.16 || 31.96 || 23.80 || 21.64 || 20.38&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 6.47 || 6.18 || 5.86 || 6.43 || 5.93 || 5.46&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.11 || 28.32 || 26.55 || 15.45 || 16.66 || 13.33&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 97.88 || 83.01 || 83.64 || 41.90 || 41.53 || 36.40&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 117.22 || 119.79 || 111.90 || 68.50 || 69.11 || 56.11&lt;br /&gt;
|}&lt;br /&gt;
The below figures show the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance4144.png | 1000px]]&lt;br /&gt;
[[File:CMakePerformance415Nightly.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* When the number of the targets is decreased, the time saving is meaningful in CMake versions. In the desktop 1, the time reduction is around 62% (version 4.14.4) and 52% (version 3.15.20190910-g39c58dd) from four targets to one target. In the desktop2, the time reduction is around 62% (version 4.14.4) and 44% (version 3.15.20190910-g39c58dd) and in the surface, it is  around 63% (version 4.14.4) and 46% (version 3.15.20190910-g39c58dd). Moreover, the time reduction averages from version 4.14 to version 3.15.20190910-g39c58dd are 51%, 54%, and 58% in the desktop 1, desktop 2, and surface, respectivaly.&lt;br /&gt;
* The hard disk technologies affect the time reduction. If the hard disk technology is SSD, the time reduction average is 7% (version 4.14.4) and 18% (version 3.15.20190910-g39c58dd). &lt;br /&gt;
* The variable ''Slicer_BUILD_QTLOADABLEMODULES'' has a relevant impact on generate time. The time reduction average is 70% (version 4.14.4), and  65% (version 3.15.20190910-g39c58dd) when the variable ''Slicer_BUILD_QTLOADABLEMODULES'' is not active and four targets. All remaining variables affect lesser in the reduction time.&lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
The number of the targets, the hard disk technologies and the variable ''Slicer_BUILD_QTLOADABLEMODULES'' have an important impact on the the CMake configuration time in both CMake versions. The hard technologies in the CMake version 4.14.4 affects less than the version nightly (3.15.20190910-g39c58dd). &lt;br /&gt;
&lt;br /&gt;
The CMake version nightly (3.15.20190910-g39c58dd) performs better than the version 4.14.4 in the configuration time. The time reduction average is 46% in one target.&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61447</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61447"/>
		<updated>2019-09-16T11:44:45Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || Hard disk Drive (HDD) || Solid State Drive (SSD) || Solid State Drive (SSD)&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake versions ''3.14.4'' and ''nightly (3.15.20190910-g39c58dd)'', and the master branch of Slicer repository (commit: ''e091a2b016eef4a621fce1dfecc6faa7f6433b51'').&lt;br /&gt;
&lt;br /&gt;
The 21 tests were generated in different configuration variables. All tests were executed ''five times'' in the folder &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build&amp;lt;/code&amp;gt; after the Slicer had been built.  &lt;br /&gt;
&lt;br /&gt;
The modified variables are:  ''Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES''. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The below table shows the command lines and the time averages for each test in each CMake version. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Test name &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Command Line &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake 3.14.4 &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake nightly (3.15.20190910-g39c58dd) &lt;br /&gt;
|-&lt;br /&gt;
! Desktop1 !! Desktop2 !! Surface !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 340.84 || 305.30 || 314.50 || 156.44 || 118.46 || 112.60&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 254.40 || 238.58 || 265.64 || 118.43 || 99.90 || 93.55&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 192.34 || 177.33 || 191.21 || 95.37 || 82.88 || 76.39&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| cmake  -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 129.68 || 118.47 || 118.83 || 72.39 || 65.43 || 59.20&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 129.98 || 119.35 || 117.70 || 75.40 || 65.99 || 60.25&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 313.28 || 280.61 || 286.78 || 120.15 || 109.32 || 105.31&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 314.07 || 309.06 || 292.90 || 119.62 || 133.38 || 108.71&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 295.44 || 287.10 || 280.79 || 108.57 || 111.68 || 96.79&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 266.17 || 250.50 || 252.05 || 107.73 || 99.07 || 91.28&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 99.19 || 93.70 || 92.71 || 46.81 || 45.98 || 41.30&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 5.53 || 5.35 || 4.89 || 5.62 || 5.18 || 4.66&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 5.18 || 5.21 || 4.85 || 5.44 || 4.98 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 5.38 || 5.15 || 4.94 || 5.35 || 5.00 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 5.47 || 5.18 || 4.82 || 5.34 || 4.99 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 5.56 || 5.16 || 4.84 || 5.16 || 5.00 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 5.25 || 5.13 || 4.88 || 5.60 || 4.94 || 4.60&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.99 || 32.16 || 31.96 || 23.80 || 21.64 || 20.38&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 6.47 || 6.18 || 5.86 || 6.43 || 5.93 || 5.46&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.11 || 28.32 || 26.55 || 15.45 || 16.66 || 13.33&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 97.88 || 83.01 || 83.64 || 41.90 || 41.53 || 36.40&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 117.22 || 119.79 || 111.90 || 68.50 || 69.11 || 56.11&lt;br /&gt;
|}&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance4144.png | 1000px]]&lt;br /&gt;
[[File:CMakePerformance415Nightly.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* When the number of the targets is decreased, the time saving is meaningful in CMake versions. In the desktop 1, the time reduction is around 62% (version 4.14.4) and 52% (version 3.15.20190910-g39c58dd) from four targets to one target. In the desktop2, the time reduction is around 62% (version 4.14.4) and 44% (version 3.15.20190910-g39c58dd) and in the surface, it is  around 63% (version 4.14.4) and 46% (version 3.15.20190910-g39c58dd). Moreover, the time reduction averages from version 4.14 to version 3.15.20190910-g39c58dd are 51%, 54%, and 58% in the desktop 1, desktop 2, and surface, respectivaly.&lt;br /&gt;
* The hard disk technologies affect the time reduction. If the hard disk technology is SSD, the time reduction average is 7% (version 4.14.4) and 18% (version 3.15.20190910-g39c58dd). &lt;br /&gt;
* The variable ''Slicer_BUILD_QTLOADABLEMODULES'' has a relevant impact on generate time. The time reduction average is 70% (version 4.14.4), and  65% (version 3.15.20190910-g39c58dd) when the variable ''Slicer_BUILD_QTLOADABLEMODULES'' is not active and four targets. All remaining variables affect lesser in the reduction time.&lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
The number of the targets, the hard disk technologies and the variable ''Slicer_BUILD_QTLOADABLEMODULES'' have an important impact on the the CMake configuration time in both CMake versions. The hard technologies in the CMake version 4.14.4 affects less than the version nightly (3.15.20190910-g39c58dd). &lt;br /&gt;
&lt;br /&gt;
The CMake version nightly (3.15.20190910-g39c58dd) performs better than the version 4.14.4 in the configuration time. The time reduction average is 46% in one target.&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61446</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61446"/>
		<updated>2019-09-16T11:39:12Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: /* Conclusions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || Hard disk Drive (HDD) || Solid State Drive (SSD) || Solid State Drive (SSD)&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake versions ''3.14.4'' and ''nightly (3.15.20190910-g39c58dd)'', and the master branch of Slicer repository (commit: ''e091a2b016eef4a621fce1dfecc6faa7f6433b51'').&lt;br /&gt;
&lt;br /&gt;
The 21 tests were generated in different configuration variables. All tests were executed ''five times'' in the folder &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build&amp;lt;/code&amp;gt; after the Slicer had been built.  &lt;br /&gt;
&lt;br /&gt;
The modified variables are:  ''Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES''. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The below table shows the command lines and the time averages for each test in each CMake version. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Test name &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Command Line &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake 3.14.4 &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake nightly (3.15.20190910-g39c58dd) &lt;br /&gt;
|-&lt;br /&gt;
! Desktop1 !! Desktop2 !! Surface !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 340.84 || 305.30 || 314.50 || 156.44 || 118.46 || 112.60&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 254.40 || 238.58 || 265.64 || 118.43 || 99.90 || 93.55&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 192.34 || 177.33 || 191.21 || 95.37 || 82.88 || 76.39&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| cmake  -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 129.68 || 118.47 || 118.83 || 72.39 || 65.43 || 59.20&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 129.98 || 119.35 || 117.70 || 75.40 || 65.99 || 60.25&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 313.28 || 280.61 || 286.78 || 120.15 || 109.32 || 105.31&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 314.07 || 309.06 || 292.90 || 119.62 || 133.38 || 108.71&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 295.44 || 287.10 || 280.79 || 108.57 || 111.68 || 96.79&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 266.17 || 250.50 || 252.05 || 107.73 || 99.07 || 91.28&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 99.19 || 93.70 || 92.71 || 46.81 || 45.98 || 41.30&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 5.53 || 5.35 || 4.89 || 5.62 || 5.18 || 4.66&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 5.18 || 5.21 || 4.85 || 5.44 || 4.98 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 5.38 || 5.15 || 4.94 || 5.35 || 5.00 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 5.47 || 5.18 || 4.82 || 5.34 || 4.99 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 5.56 || 5.16 || 4.84 || 5.16 || 5.00 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 5.25 || 5.13 || 4.88 || 5.60 || 4.94 || 4.60&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.99 || 32.16 || 31.96 || 23.80 || 21.64 || 20.38&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 6.47 || 6.18 || 5.86 || 6.43 || 5.93 || 5.46&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.11 || 28.32 || 26.55 || 15.45 || 16.66 || 13.33&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 97.88 || 83.01 || 83.64 || 41.90 || 41.53 || 36.40&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 117.22 || 119.79 || 111.90 || 68.50 || 69.11 || 56.11&lt;br /&gt;
|}&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance4144.png | 1000px]]&lt;br /&gt;
[[File:CMakePerformance415Nightly.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* When the number of the targets is decreased, the time saving is meaningful in CMake versions. In the desktop 1, the time reduction is around 62% (version 4.14.4) and 52% (version 3.15.20190910-g39c58dd) from four targets to one target. In the desktop2, the time reduction is around 62% (version 4.14.4) and 44% (version 3.15.20190910-g39c58dd) and in the surface, it is  around 63% (version 4.14.4) and 46% (version 3.15.20190910-g39c58dd). Moreover, the time reduction averages from version 4.14 to version 3.15.20190910-g39c58dd are 51%, 54%, and 58% in the desktop 1, desktop 2, and surface, respectivaly.&lt;br /&gt;
* The hard disk technologies affect the time reduction. If the hard disk technology is SSD, the time reduction average is 7% (version 4.14.4) and 18% (version 3.15.20190910-g39c58dd). &lt;br /&gt;
* The variable ''Slicer_BUILD_QTLOADABLEMODULES'' has a relevant impact on generate time. The time reduction average is 70% (version 4.14.4), and  65% (version 3.15.20190910-g39c58dd) when the variable ''Slicer_BUILD_QTLOADABLEMODULES'' is not active and four targets. All remaining variables affect lesser in the reduction time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
The number of the targets, the hard disk technologies and the variable ''Slicer_BUILD_QTLOADABLEMODULES'' have an important impact on the the CMake configuration time in both CMake versions. The hard technologies in the CMake version 4.14.4 affects less than the version nightly (3.15.20190910-g39c58dd). &lt;br /&gt;
&lt;br /&gt;
The CMake version nightly (3.15.20190910-g39c58dd) performs better than the version 4.14.4 in the configuration time. The time reduction average is 46% in one target.&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61445</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61445"/>
		<updated>2019-09-16T11:38:59Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: /* Conclusions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || Hard disk Drive (HDD) || Solid State Drive (SSD) || Solid State Drive (SSD)&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake versions ''3.14.4'' and ''nightly (3.15.20190910-g39c58dd)'', and the master branch of Slicer repository (commit: ''e091a2b016eef4a621fce1dfecc6faa7f6433b51'').&lt;br /&gt;
&lt;br /&gt;
The 21 tests were generated in different configuration variables. All tests were executed ''five times'' in the folder &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build&amp;lt;/code&amp;gt; after the Slicer had been built.  &lt;br /&gt;
&lt;br /&gt;
The modified variables are:  ''Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES''. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The below table shows the command lines and the time averages for each test in each CMake version. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Test name &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Command Line &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake 3.14.4 &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake nightly (3.15.20190910-g39c58dd) &lt;br /&gt;
|-&lt;br /&gt;
! Desktop1 !! Desktop2 !! Surface !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 340.84 || 305.30 || 314.50 || 156.44 || 118.46 || 112.60&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 254.40 || 238.58 || 265.64 || 118.43 || 99.90 || 93.55&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 192.34 || 177.33 || 191.21 || 95.37 || 82.88 || 76.39&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| cmake  -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 129.68 || 118.47 || 118.83 || 72.39 || 65.43 || 59.20&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 129.98 || 119.35 || 117.70 || 75.40 || 65.99 || 60.25&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 313.28 || 280.61 || 286.78 || 120.15 || 109.32 || 105.31&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 314.07 || 309.06 || 292.90 || 119.62 || 133.38 || 108.71&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 295.44 || 287.10 || 280.79 || 108.57 || 111.68 || 96.79&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 266.17 || 250.50 || 252.05 || 107.73 || 99.07 || 91.28&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 99.19 || 93.70 || 92.71 || 46.81 || 45.98 || 41.30&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 5.53 || 5.35 || 4.89 || 5.62 || 5.18 || 4.66&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 5.18 || 5.21 || 4.85 || 5.44 || 4.98 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 5.38 || 5.15 || 4.94 || 5.35 || 5.00 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 5.47 || 5.18 || 4.82 || 5.34 || 4.99 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 5.56 || 5.16 || 4.84 || 5.16 || 5.00 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 5.25 || 5.13 || 4.88 || 5.60 || 4.94 || 4.60&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.99 || 32.16 || 31.96 || 23.80 || 21.64 || 20.38&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 6.47 || 6.18 || 5.86 || 6.43 || 5.93 || 5.46&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.11 || 28.32 || 26.55 || 15.45 || 16.66 || 13.33&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 97.88 || 83.01 || 83.64 || 41.90 || 41.53 || 36.40&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 117.22 || 119.79 || 111.90 || 68.50 || 69.11 || 56.11&lt;br /&gt;
|}&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance4144.png | 1000px]]&lt;br /&gt;
[[File:CMakePerformance415Nightly.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* When the number of the targets is decreased, the time saving is meaningful in CMake versions. In the desktop 1, the time reduction is around 62% (version 4.14.4) and 52% (version 3.15.20190910-g39c58dd) from four targets to one target. In the desktop2, the time reduction is around 62% (version 4.14.4) and 44% (version 3.15.20190910-g39c58dd) and in the surface, it is  around 63% (version 4.14.4) and 46% (version 3.15.20190910-g39c58dd). Moreover, the time reduction averages from version 4.14 to version 3.15.20190910-g39c58dd are 51%, 54%, and 58% in the desktop 1, desktop 2, and surface, respectivaly.&lt;br /&gt;
* The hard disk technologies affect the time reduction. If the hard disk technology is SSD, the time reduction average is 7% (version 4.14.4) and 18% (version 3.15.20190910-g39c58dd). &lt;br /&gt;
* The variable ''Slicer_BUILD_QTLOADABLEMODULES'' has a relevant impact on generate time. The time reduction average is 70% (version 4.14.4), and  65% (version 3.15.20190910-g39c58dd) when the variable ''Slicer_BUILD_QTLOADABLEMODULES'' is not active and four targets. All remaining variables affect lesser in the reduction time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
The number of the targets, the hard disk technologies and the variable ''Slicer_BUILD_QTLOADABLEMODULES'' have an important impact on the the CMake configuration time in both CMake versions. The hard technologies in the CMake version 4.14.4 affects less than the version nightly (3.15.20190910-g39c58dd). &lt;br /&gt;
The CMake version nightly (3.15.20190910-g39c58dd) performs better than the version 4.14.4 in the configuration time. The time reduction average is 46% in one target.&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61444</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61444"/>
		<updated>2019-09-16T11:27:59Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || Hard disk Drive (HDD) || Solid State Drive (SSD) || Solid State Drive (SSD)&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake versions ''3.14.4'' and ''nightly (3.15.20190910-g39c58dd)'', and the master branch of Slicer repository (commit: ''e091a2b016eef4a621fce1dfecc6faa7f6433b51'').&lt;br /&gt;
&lt;br /&gt;
The 21 tests were generated in different configuration variables. All tests were executed ''five times'' in the folder &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build&amp;lt;/code&amp;gt; after the Slicer had been built.  &lt;br /&gt;
&lt;br /&gt;
The modified variables are:  ''Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES''. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The below table shows the command lines and the time averages for each test in each CMake version. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Test name &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Command Line &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake 3.14.4 &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake nightly (3.15.20190910-g39c58dd) &lt;br /&gt;
|-&lt;br /&gt;
! Desktop1 !! Desktop2 !! Surface !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 340.84 || 305.30 || 314.50 || 156.44 || 118.46 || 112.60&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 254.40 || 238.58 || 265.64 || 118.43 || 99.90 || 93.55&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 192.34 || 177.33 || 191.21 || 95.37 || 82.88 || 76.39&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| cmake  -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 129.68 || 118.47 || 118.83 || 72.39 || 65.43 || 59.20&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 129.98 || 119.35 || 117.70 || 75.40 || 65.99 || 60.25&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 313.28 || 280.61 || 286.78 || 120.15 || 109.32 || 105.31&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 314.07 || 309.06 || 292.90 || 119.62 || 133.38 || 108.71&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 295.44 || 287.10 || 280.79 || 108.57 || 111.68 || 96.79&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 266.17 || 250.50 || 252.05 || 107.73 || 99.07 || 91.28&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 99.19 || 93.70 || 92.71 || 46.81 || 45.98 || 41.30&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 5.53 || 5.35 || 4.89 || 5.62 || 5.18 || 4.66&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 5.18 || 5.21 || 4.85 || 5.44 || 4.98 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 5.38 || 5.15 || 4.94 || 5.35 || 5.00 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 5.47 || 5.18 || 4.82 || 5.34 || 4.99 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 5.56 || 5.16 || 4.84 || 5.16 || 5.00 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 5.25 || 5.13 || 4.88 || 5.60 || 4.94 || 4.60&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.99 || 32.16 || 31.96 || 23.80 || 21.64 || 20.38&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 6.47 || 6.18 || 5.86 || 6.43 || 5.93 || 5.46&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.11 || 28.32 || 26.55 || 15.45 || 16.66 || 13.33&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 97.88 || 83.01 || 83.64 || 41.90 || 41.53 || 36.40&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 117.22 || 119.79 || 111.90 || 68.50 || 69.11 || 56.11&lt;br /&gt;
|}&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance4144.png | 1000px]]&lt;br /&gt;
[[File:CMakePerformance415Nightly.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* When the number of the targets is decreased, the time saving is meaningful in CMake versions. In the desktop 1, the time reduction is around 62% (version 4.14.4) and 52% (version 3.15.20190910-g39c58dd) from four targets to one target. In the desktop2, the time reduction is around 62% (version 4.14.4) and 44% (version 3.15.20190910-g39c58dd) and in the surface, it is  around 63% (version 4.14.4) and 46% (version 3.15.20190910-g39c58dd). Moreover, the time reduction averages from version 4.14 to version 3.15.20190910-g39c58dd are 51%, 54%, and 58% in the desktop 1, desktop 2, and surface, respectivaly.&lt;br /&gt;
* The hard disk technologies affect the time reduction. If the hard disk technology is SSD, the time reduction average is 7% (version 4.14.4) and 18% (version 3.15.20190910-g39c58dd). &lt;br /&gt;
* The variable ''Slicer_BUILD_QTLOADABLEMODULES'' has a relevant impact on generate time. The time reduction average is 70% (version 4.14.4), and  65% (version 3.15.20190910-g39c58dd) when the variable ''Slicer_BUILD_QTLOADABLEMODULES'' is not active and four targets. All remaining variables affect lesser in the reduction time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
The number of the targets, the hard disk technologies and the variable ''Slicer_BUILD_QTLOADABLEMODULES'' have an important impact on the the CMake configuration time.&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:CMakePerformance415Nightly.png&amp;diff=61443</id>
		<title>File:CMakePerformance415Nightly.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:CMakePerformance415Nightly.png&amp;diff=61443"/>
		<updated>2019-09-16T09:00:21Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: Performance: CMake Nightly (3.15.20190910-g39c58dd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Performance: CMake Nightly (3.15.20190910-g39c58dd&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:CMakePerformance4144.png&amp;diff=61442</id>
		<title>File:CMakePerformance4144.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:CMakePerformance4144.png&amp;diff=61442"/>
		<updated>2019-09-16T08:57:29Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: Performance: CMake 4.14.4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Performance: CMake 4.14.4&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61441</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61441"/>
		<updated>2019-09-16T08:45:30Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || Hard disk Drive (HDD) || Solid State Drive (SSD) || Solid State Drive (SSD)&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake versions ''3.14.4'' and ''nightly (3.15.20190910-g39c58dd)'', and the master branch of Slicer repository (commit: ''e091a2b016eef4a621fce1dfecc6faa7f6433b51'').&lt;br /&gt;
&lt;br /&gt;
The 21 tests were generated in different configuration variables. All tests were executed ''five times'' in the folder &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build&amp;lt;/code&amp;gt; after the Slicer had been built.  &lt;br /&gt;
&lt;br /&gt;
The modified variables are:  ''Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES''. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The below table shows the command lines and the time averages for each test in each CMake version. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Test name &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Command Line &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake 3.14.4 &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake nightly (3.15.20190910-g39c58dd) &lt;br /&gt;
|-&lt;br /&gt;
! Desktop1 !! Desktop2 !! Surface !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 340.84 || 305.30 || 314.50 || 156.44 || 118.46 || 112.60&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 254.40 || 238.58 || 265.64 || 118.43 || 99.90 || 93.55&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 192.34 || 177.33 || 191.21 || 95.37 || 82.88 || 76.39&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| cmake  -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 129.68 || 118.47 || 118.83 || 72.39 || 65.43 || 59.20&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 129.98 || 119.35 || 117.70 || 75.40 || 65.99 || 60.25&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 313.28 || 280.61 || 286.78 || 120.15 || 109.32 || 105.31&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 314.07 || 309.06 || 292.90 || 119.62 || 133.38 || 108.71&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 295.44 || 287.10 || 280.79 || 108.57 || 111.68 || 96.79&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 266.17 || 250.50 || 252.05 || 107.73 || 99.07 || 91.28&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 99.19 || 93.70 || 92.71 || 46.81 || 45.98 || 41.30&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 5.53 || 5.35 || 4.89 || 5.62 || 5.18 || 4.66&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 5.18 || 5.21 || 4.85 || 5.44 || 4.98 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 5.38 || 5.15 || 4.94 || 5.35 || 5.00 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 5.47 || 5.18 || 4.82 || 5.34 || 4.99 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 5.56 || 5.16 || 4.84 || 5.16 || 5.00 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 5.25 || 5.13 || 4.88 || 5.60 || 4.94 || 4.60&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.99 || 32.16 || 31.96 || 23.80 || 21.64 || 20.38&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 6.47 || 6.18 || 5.86 || 6.43 || 5.93 || 5.46&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.11 || 28.32 || 26.55 || 15.45 || 16.66 || 13.33&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 97.88 || 83.01 || 83.64 || 41.90 || 41.53 || 36.40&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 117.22 || 119.79 || 111.90 || 68.50 || 69.11 || 56.11&lt;br /&gt;
|}&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance.png]]&lt;br /&gt;
&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* When the number of the targets is decreased, the time saving is meaningful. In the desktop 1, the time reduction is around 65% and is around 64% and 49% in the desktop2 and the surface respectively.&lt;br /&gt;
* The hard disk technologies affect the time reduction. If the hard disk technology is SSD, the time reduction average is 29 %. Moreover, the time saving is larger test 1 (43%) than tests 4 y 5, because the number of files generated in test 1 is larger than tests 4 y 5 in the configuration four targets. &lt;br /&gt;
* The variable ''Slicer_BUILD_QTLOADABLEMODULES'' has a relevant impact on generate time. The time reduction is between from 65% to 75% when the variable Slicer_BUILD_QTLOADABLEMODULES is not active and four targets. All remaining variables affect lesser in the reduction time.&lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
The number of the targets, the hard disk technologies and the variable ''Slicer_BUILD_QTLOADABLEMODULES'' have an important impact on the the CMake configuration time. The time saving average is 59% when the number of targets is one.  The time reduction average is 29 % if the SSD technology is used.&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61440</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61440"/>
		<updated>2019-09-16T07:53:50Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: /* Enviroment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || Hard disk Drive (HDD) || Solid State Drive (SSD) || Solid State Drive (SSD)&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake versions ''3.14.4'' and ''nightly (3.15.20190910-g39c58dd)'', and the master branch of Slicer repository (commit: ''e091a2b016eef4a621fce1dfecc6faa7f6433b51'').&lt;br /&gt;
&lt;br /&gt;
The 21 tests were generated in different configuration variables. All tests were executed ''five times'' in the folder &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build&amp;lt;/code&amp;gt; after the Slicer had been built.  &lt;br /&gt;
&lt;br /&gt;
The modified variables are:  ''Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES''. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The below table shows the command lines and the time averages for each test in each CMake version. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Test name &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; |Command Line &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | Cmake 3.14.4 &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake nightly (3.15.20190910-g39c58dd) &lt;br /&gt;
|-&lt;br /&gt;
! Desktop1 !! Desktop2 !! Surface !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 340.84 || 305.30 || 314.50 || 156.44 || 118.46 || 112.60&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 254.40 || 238.58 || 265.64 || 118.43 || 99.90 || 93.55&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 192.34 || 177.33 || 191.21 || 95.37 || 82.88 || 76.39&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| cmake  -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 129.68 || 118.47 || 118.83 || 72.39 || 65.43 || 59.20&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 129.98 || 119.35 || 117.70 || 75.40 || 65.99 || 60.25&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 313.28 || 280.61 || 286.78 || 120.15 || 109.32 || 105.31&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 314.07 || 309.06 || 292.90 || 119.62 || 133.38 || 108.71&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 295.44 || 287.10 || 280.79 || 108.57 || 111.68 || 96.79&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 266.17 || 250.50 || 252.05 || 107.73 || 99.07 || 91.28&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 99.19 || 93.70 || 92.71 || 46.81 || 45.98 || 41.30&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 5.53 || 5.35 || 4.89 || 5.62 || 5.18 || 4.66&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 5.18 || 5.21 || 4.85 || 5.44 || 4.98 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 5.38 || 5.15 || 4.94 || 5.35 || 5.00 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 5.47 || 5.18 || 4.82 || 5.34 || 4.99 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 5.56 || 5.16 || 4.84 || 5.16 || 5.00 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 5.25 || 5.13 || 4.88 || 5.60 || 4.94 || 4.60&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.99 || 32.16 || 31.96 || 23.80 || 21.64 || 20.38&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 6.47 || 6.18 || 5.86 || 6.43 || 5.93 || 5.46&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.11 || 28.32 || 26.55 || 15.45 || 16.66 || 13.33&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 97.88 || 83.01 || 83.64 || 41.90 || 41.53 || 36.40&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 117.22 || 119.79 || 111.90 || 68.50 || 69.11 || 56.11&lt;br /&gt;
|}&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance.png]]&lt;br /&gt;
&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* When the number of the targets is decreased, the time saving is meaningful. In the desktop 1, the time reduction is around 65% and is around 64% and 49% in the desktop2 and the surface respectively.&lt;br /&gt;
* The hard disk technologies affect the time reduction. If the hard disk technology is SSD, the time reduction average is 29 %. Moreover, the time saving is larger test 1 (43%) than tests 4 y 5, because the number of files generated in test 1 is larger than tests 4 y 5 in the configuration four targets. &lt;br /&gt;
* The variable ''Slicer_BUILD_QTLOADABLEMODULES'' has a relevant impact on generate time. The time reduction is between from 65% to 75% when the variable Slicer_BUILD_QTLOADABLEMODULES is not active and four targets. All remaining variables affect lesser in the reduction time.&lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
The number of the targets, the hard disk technologies and the variable ''Slicer_BUILD_QTLOADABLEMODULES'' have an important impact on the the CMake configuration time. The time saving average is 59% when the number of targets is one.  The time reduction average is 29 % if the SSD technology is used.&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61439</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61439"/>
		<updated>2019-09-16T07:47:20Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: updating table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || Hard disk Drive (HDD) || Solid State Drive (SSD) || Solid State Drive (SSD)&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake version 3.14.4 and the master branch of Slicer repository of the fork mt4sd [https://github.com/mt4sd/Slicer link].&lt;br /&gt;
&lt;br /&gt;
The 21 tests were generated in different configuration variables. All tests were executed in the folder &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build&amp;lt;/code&amp;gt; after the Slicer had been built.  &lt;br /&gt;
&lt;br /&gt;
The modified variables are:  ''Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES''. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The below table shows the command lines and the time averages for each test in each CMake version. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; | Test name &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; |Command Line &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | Cmake 3.14.4 &lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | CMake nightly (3.15.20190910-g39c58dd) &lt;br /&gt;
|-&lt;br /&gt;
! Desktop1 !! Desktop2 !! Surface !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 340.84 || 305.30 || 314.50 || 156.44 || 118.46 || 112.60&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 254.40 || 238.58 || 265.64 || 118.43 || 99.90 || 93.55&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 192.34 || 177.33 || 191.21 || 95.37 || 82.88 || 76.39&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| cmake  -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 129.68 || 118.47 || 118.83 || 72.39 || 65.43 || 59.20&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 129.98 || 119.35 || 117.70 || 75.40 || 65.99 || 60.25&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 313.28 || 280.61 || 286.78 || 120.15 || 109.32 || 105.31&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 314.07 || 309.06 || 292.90 || 119.62 || 133.38 || 108.71&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 295.44 || 287.10 || 280.79 || 108.57 || 111.68 || 96.79&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 266.17 || 250.50 || 252.05 || 107.73 || 99.07 || 91.28&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 99.19 || 93.70 || 92.71 || 46.81 || 45.98 || 41.30&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 5.53 || 5.35 || 4.89 || 5.62 || 5.18 || 4.66&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 5.18 || 5.21 || 4.85 || 5.44 || 4.98 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 5.38 || 5.15 || 4.94 || 5.35 || 5.00 || 4.61&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 5.47 || 5.18 || 4.82 || 5.34 || 4.99 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 5.56 || 5.16 || 4.84 || 5.16 || 5.00 || 4.59&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 5.25 || 5.13 || 4.88 || 5.60 || 4.94 || 4.60&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.99 || 32.16 || 31.96 || 23.80 || 21.64 || 20.38&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 6.47 || 6.18 || 5.86 || 6.43 || 5.93 || 5.46&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.11 || 28.32 || 26.55 || 15.45 || 16.66 || 13.33&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 97.88 || 83.01 || 83.64 || 41.90 || 41.53 || 36.40&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot;  -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -Dcmake -G &amp;quot;Visual Studio 14 2015 Win64&amp;quot; _CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 117.22 || 119.79 || 111.90 || 68.50 || 69.11 || 56.11&lt;br /&gt;
|}&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance.png]]&lt;br /&gt;
&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* When the number of the targets is decreased, the time saving is meaningful. In the desktop 1, the time reduction is around 65% and is around 64% and 49% in the desktop2 and the surface respectively.&lt;br /&gt;
* The hard disk technologies affect the time reduction. If the hard disk technology is SSD, the time reduction average is 29 %. Moreover, the time saving is larger test 1 (43%) than tests 4 y 5, because the number of files generated in test 1 is larger than tests 4 y 5 in the configuration four targets. &lt;br /&gt;
* The variable ''Slicer_BUILD_QTLOADABLEMODULES'' has a relevant impact on generate time. The time reduction is between from 65% to 75% when the variable Slicer_BUILD_QTLOADABLEMODULES is not active and four targets. All remaining variables affect lesser in the reduction time.&lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
The number of the targets, the hard disk technologies and the variable ''Slicer_BUILD_QTLOADABLEMODULES'' have an important impact on the the CMake configuration time. The time saving average is 59% when the number of targets is one.  The time reduction average is 29 % if the SSD technology is used.&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61388</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61388"/>
		<updated>2019-09-02T14:07:56Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: latest version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || Hard disk Drive (HDD) || Solid State Drive (SSD) || Solid State Drive (SSD)&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake version 3.14.4 and the master branch of Slicer repository of the fork mt4sd [https://github.com/mt4sd/Slicer link].&lt;br /&gt;
&lt;br /&gt;
The 21 tests were generated in different configuration variables. All tests were executed in the folder &amp;lt;code&amp;gt;Slicer-SuperBuild/Slicer-build&amp;lt;/code&amp;gt; after the Slicer had been built.  &lt;br /&gt;
&lt;br /&gt;
The modified variables are:  ''Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES''. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The table below shows the command line and the times for each test. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
! Test name !! Command Line !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 411.44 || 233.75 || 234.09&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 277.93 || 174.74 || 206.47&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 206.36 || 151.39 || 170.40&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| Slicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 140.92 || 103.25 || 122.25&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 142.92 || 88.69 || 117.91&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 328.13 || 206.30 || 244.59&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 326.36 || 228.41 || 251.93&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 315.46 || 233.08 || 241.44&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 281.66 || 176.60 || 208.52&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 106.35 || 58.53 || 80.26&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 64.51 || 42.02 || 39.71&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 50.51 || 32.92 || 33.8&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 39.71 || 24.23 || 28.11&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 27.96 || 15.76 || 22.38&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| Slicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 28.04 || 15.76 || 22.28&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 28.33 || 16.20 || 22.56&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 42.19 || 15.86 || 35.32&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.31 || 19.69 || 26.32&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.63 || 24.95 || 31.65&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 98.78 || 65.97 || 75.91&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 131.82 || 86.52 || 109.27&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance.png]]&lt;br /&gt;
&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* When the number of the targets is decreased, the time saving is meaningful. In the desktop 1, the time reduction is around 65% and is around 64% and 49% in the desktop2 and the surface respectively.&lt;br /&gt;
* The hard disk technologies affect the time reduction. If the hard disk technology is SSD, the time reduction average is 29 %. Moreover, the time saving is larger test 1 (43%) than tests 4 y 5, because the number of files generated in test 1 is larger than tests 4 y 5 in the configuration four targets. &lt;br /&gt;
* The variable ''Slicer_BUILD_QTLOADABLEMODULES'' has a relevant impact on generate time. The time reduction is between from 65% to 75% when the variable Slicer_BUILD_QTLOADABLEMODULES is not active and four targets. All remaining variables affect lesser in the reduction time.  &lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
The number of the targets, the hard disk technologies and the variable ''Slicer_BUILD_QTLOADABLEMODULES'' have an important impact on the the CMake configuration time. The time saving average is 59% when the number of targets is one.  The time reduction average is 29 % if the SSD technology is used.&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61387</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61387"/>
		<updated>2019-08-29T14:14:22Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || HHD || SSD || SSD&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake version 3.14.4 and the master branch of Slicer repository of the fork mt4sd [https://github.com/mt4sd/Slicer link].&lt;br /&gt;
&lt;br /&gt;
The 21 tests were run in different configuration variables. The modified variables are:  Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The table below shows the command line and the times for each test. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
! Test name !! Command Line !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 411.44 || 233.75 || 234.09&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 277.93 || 174.74 || 206.47&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 206.36 || 151.39 || 170.40&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| Slicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 140.92 || 103.25 || 122.25&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 142.92 || 88.69 || 117.91&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 328.13 || 206.30 || 244.59&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 326.36 || 228.41 || 251.93&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 315.46 || 233.08 || 241.44&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 281.66 || 176.60 || 208.52&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 106.35 || 58.53 || 80.26&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 64.51 || 42.02 || 39.71&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 50.51 || 32.92 || 33.8&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 39.71 || 24.23 || 28.11&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 27.96 || 15.76 || 22.38&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| Slicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 28.04 || 15.76 || 22.28&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 28.33 || 16.20 || 22.56&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 42.19 || 15.86 || 35.32&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.31 || 19.69 || 26.32&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.63 || 24.95 || 31.65&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 98.78 || 65.97 || 75.91&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 131.82 || 86.52 || 109.27&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance.png]]&lt;br /&gt;
&lt;br /&gt;
=== Conclusions ===&lt;br /&gt;
We observe several behaviours:&lt;br /&gt;
* The hard disk technologic and number of targets affects the time&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61386</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61386"/>
		<updated>2019-08-29T14:11:18Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CMake performance Analysis ==&lt;br /&gt;
During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || HHD || SSD || SSD&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enviroment ====&lt;br /&gt;
The test enviroment uses the CMake version 3.14.4 and the master branch of Slicer repository of the fork mt4sd [https://github.com/mt4sd/Slicer link].&lt;br /&gt;
&lt;br /&gt;
The 21 tests were run in different configuration variables. The modified variables are:  Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES. The internationalization(I18n) is not activated any tests.&lt;br /&gt;
&lt;br /&gt;
==== Results ====  &lt;br /&gt;
&lt;br /&gt;
The table below shows the command line and the times for each test. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
! Test name !! Command Line !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 411.44 || 233.75 || 234.09&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 277.93 || 174.74 || 206.47&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 206.36 || 151.39 || 170.40&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| Slicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 140.92 || 103.25 || 122.25&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 142.92 || 88.69 || 117.91&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 328.13 || 206.30 || 244.59&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 326.36 || 228.41 || 251.93&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 315.46 || 233.08 || 241.44&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 281.66 || 176.60 || 208.52&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 106.35 || 58.53 || 80.26&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 64.51 || 42.02 || 39.71&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 50.51 || 32.92 || 33.8&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 39.71 || 24.23 || 28.11&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 27.96 || 15.76 || 22.38&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| Slicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 28.04 || 15.76 || 22.28&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 28.33 || 16.20 || 22.56&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 42.19 || 15.86 || 35.32&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.31 || 19.69 || 26.32&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.63 || 24.95 || 31.65&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 98.78 || 65.97 || 75.91&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 131.82 || 86.52 || 109.27&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance.png]]&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61385</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61385"/>
		<updated>2019-08-29T12:10:38Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;During the 31st 3D Slicer Project Week, we found a loss of performance in CMake for the generation of Slicer targets in the operating system ''Windows''. The performance loss means  the time for the generation of the target is larger than the operating system ''Linux''. This page analysises the performance loss in Windows in several computers: two desktops and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || HHD || SSD || SSD&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Analysis and results =&lt;br /&gt;
&lt;br /&gt;
The 21 tests were run in different configuration variables and were shown the table below. The variables are:  Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES. The internationalization(I18n) is not activated any tests. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
! Test name !! Command Line !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 411.44 || 233.75 || 234.09&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 277.93 || 174.74 || 206.47&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 206.36 || 151.39 || 170.40&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| Slicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 140.92 || 103.25 || 122.25&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 142.92 || 88.69 || 117.91&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 328.13 || 206.30 || 244.59&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 326.36 || 228.41 || 251.93&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 315.46 || 233.08 || 241.44&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 281.66 || 176.60 || 208.52&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 106.35 || 58.53 || 80.26&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 64.51 || 42.02 || 39.71&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 50.51 || 32.92 || 33.8&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 39.71 || 24.23 || 28.11&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 27.96 || 15.76 || 22.38&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| Slicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 28.04 || 15.76 || 22.28&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 28.33 || 16.20 || 22.56&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 42.19 || 15.86 || 35.32&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.31 || 19.69 || 26.32&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.63 || 24.95 || 31.65&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 98.78 || 65.97 || 75.91&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 131.82 || 86.52 || 109.27&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The figure below shows the previous information in a graphic mode. &lt;br /&gt;
&lt;br /&gt;
[[File:CMakePerformance.png]]&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:CMakePerformance.png&amp;diff=61384</id>
		<title>File:CMakePerformance.png</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:CMakePerformance.png&amp;diff=61384"/>
		<updated>2019-08-29T11:52:56Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: CMake Performance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CMake Performance&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61383</id>
		<title>Documentation/Labs/BuildSystem ImproveCMakeConfigurationTime</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/Labs/BuildSystem_ImproveCMakeConfigurationTime&amp;diff=61383"/>
		<updated>2019-08-29T11:50:27Z</updated>

		<summary type="html">&lt;p&gt;CarlosLuque: Created page with &amp;quot;During the 31st 3D Slicer Project Week, we found a loss of performance in cmake for the generation of Slicer targets in the operating system Windows. The performance loss mean...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;During the 31st 3D Slicer Project Week, we found a loss of performance in cmake for the generation of Slicer targets in the operating system Windows. The performance loss means  the time for the generation of the target is larger than the operating system Linux. This page analysises the performance loss in Windows in several computers: two computers and a laptop. The computer configurations are shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
!  !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
| Processor || Intel i7-6700 CPU 3.40GHz || Intel i7-6700 CPU 3.40GHz || Intel i7-8650U CPU 2.11GHz&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB || 16GB || 16GB&lt;br /&gt;
|-&lt;br /&gt;
| Disk storage || HHD || SSD || SSD&lt;br /&gt;
|-&lt;br /&gt;
| Operating system || Windows 10 x64 || Windows 10 x64 || Windows 10 x64&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Analysis and results =&lt;br /&gt;
&lt;br /&gt;
The 21 tests were run in different configuration variables and were shown the table below. The variables are:  Slicer_BUILD_CL, Slicer_BUILD_I18N_SUPPORT, Slicer_USE_PYTHONQT, Slicer_BUILD_QTLOADABLEMODULES, Slicer_BUILD_QTSCRIPTEDMODULES, Slicer_EP_LABEL_REMOTE_MODULE, CMAKE_CONFIGURATION_TYPES.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot;&lt;br /&gt;
! Test name !! Command Line !! Desktop1 !! Desktop2 !! Surface&lt;br /&gt;
|-&lt;br /&gt;
! test1&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 411.44 || 233.75 || 234.09&lt;br /&gt;
|-&lt;br /&gt;
! test2&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 277.93 || 174.74 || 206.47&lt;br /&gt;
|-&lt;br /&gt;
! test3&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 206.36 || 151.39 || 170.40&lt;br /&gt;
|-&lt;br /&gt;
! test4&lt;br /&gt;
| Slicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 140.92 || 103.25 || 122.25&lt;br /&gt;
|-&lt;br /&gt;
! test5&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 142.92 || 88.69 || 117.91&lt;br /&gt;
|-&lt;br /&gt;
! test6&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 328.13 || 206.30 || 244.59&lt;br /&gt;
|-&lt;br /&gt;
! test7&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 326.36 || 228.41 || 251.93&lt;br /&gt;
|-&lt;br /&gt;
! test8&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;MultiVolumeExplorer_SOURCE_DIR;MultiVolumeImporter_SOURCE_DIR;SimpleFilters_SOURCE_DIR;BRAINSTools_SOURCE_DIR;DataStore_SOURCE_DIR;CompareVolumes_SOURCE_DIR;LandmarkRegistration_SOURCE_DIR&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 315.46 || 233.08 || 241.44&lt;br /&gt;
|-&lt;br /&gt;
! test9&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 281.66 || 176.60 || 208.52&lt;br /&gt;
|-&lt;br /&gt;
! test10&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 106.35 || 58.53 || 80.26&lt;br /&gt;
|-&lt;br /&gt;
! test11&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel;RelWithDebInfo&amp;quot; . || 64.51 || 42.02 || 39.71&lt;br /&gt;
|-&lt;br /&gt;
! test12&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release;MinSizeRel&amp;quot; . || 50.51 || 32.92 || 33.8&lt;br /&gt;
|-&lt;br /&gt;
! test13&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug;Release&amp;quot; . || 39.71 || 24.23 || 28.11&lt;br /&gt;
|-&lt;br /&gt;
! test14&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 27.96 || 15.76 || 22.38&lt;br /&gt;
|-&lt;br /&gt;
! test15&lt;br /&gt;
| Slicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Release&amp;quot; . || 28.04 || 15.76 || 22.28&lt;br /&gt;
|-&lt;br /&gt;
! test16&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;RelWithDebInfo&amp;quot; . || 28.33 || 16.20 || 22.56&lt;br /&gt;
|-&lt;br /&gt;
! test17&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 42.19 || 15.86 || 35.32&lt;br /&gt;
|-&lt;br /&gt;
! test18&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 32.31 || 19.69 || 26.32&lt;br /&gt;
|-&lt;br /&gt;
! test19&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=0 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 36.63 || 24.95 || 31.65&lt;br /&gt;
|-&lt;br /&gt;
! test20&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=0 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=0 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=0 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 98.78 || 65.97 || 75.91&lt;br /&gt;
|-&lt;br /&gt;
! test21&lt;br /&gt;
| cmake -DSlicer_BUILD_CLI=1 -DSlicer_BUILD_I18N_SUPPORT=0 -DSlicer_USE_PYTHONQT=1 -DSlicer_BUILD_QTLOADABLEMODULES=1 -DSlicer_BUILD_QTSCRIPTEDMODULES=1 -DSlicer_EP_LABEL_REMOTE_MODULE=&amp;quot;&amp;quot; -DCMAKE_CONFIGURATION_TYPES=&amp;quot;Debug&amp;quot; . || 131.82 || 86.52 || 109.27&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>CarlosLuque</name></author>
		
	</entry>
</feed>