MantisBT - CMake | |||||
View Issue Details | |||||
ID | Project | Category | View Status | Date Submitted | Last Update |
0012381 | CMake | CTest | public | 2011-08-02 11:20 | 2016-06-10 14:31 |
Reporter | Sean McBride | ||||
Assigned To | Kitware Robot | ||||
Priority | high | Severity | major | Reproducibility | always |
Status | closed | Resolution | moved | ||
Platform | OS | OS Version | |||
Product Version | CMake 2.8.5 | ||||
Target Version | Fixed in Version | ||||
Summary | 0012381: ctest uses a lot of CPU time doing regular expressions, significantly slowing builds | ||||
Description | Our developers normally do everything in Xcode itself, but our internal nightly builds and dashboard use a combination of the command line xcodebuild and ctest. The latter are literally 10x slower than the former. Profiling reveals much CPU time is spent like so (best viewed with monospaced font): main cmCTest::Run(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*) cmCTestScriptHandler::ProcessHandler() cmCTestScriptHandler::RunConfigurationScript(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) cmCTestScriptHandler::ReadInScript(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) cmMakefile::ReadListFile(char const*, char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool) cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&) cmCommand::InvokeInitialPass(std::vector<cmListFileArgument, std::allocator<cmListFileArgument> > const&, cmExecutionStatus&) cmCTestBuildCommand::InitialPass(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, cmExecutionStatus&) cmCTestHandlerCommand::InitialPass(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, cmExecutionStatus&) cmCTestBuildHandler::ProcessHandler() cmCTestBuildHandler::RunMakeCommand(char const*, int*, char const*, int, std::basic_ofstream<char, std::char_traits<char> >&) cmCTestBuildHandler::ProcessBuffer(char const*, int, unsigned long&, unsigned long, std::basic_ofstream<char, std::char_traits<char> >&, std::deque<char, std::allocator<char> >*) cmCTestBuildHandler::ProcessSingleLine(char const*) cmsys::RegularExpression::find(char const*) cmsys::regtry(char const*, char const**, char const**, char const*) cmsys::regmatch(char const*) Our hypothesis is that all the output generated by xcodebuild takes forever to grep for errors/warnings. It would be nice if this could be optimized. It appears to be single threaded currently, perhaps parallelization is an option? | ||||
Steps To Reproduce | |||||
Additional Information | |||||
Tags | No tags attached. | ||||
Relationships | |||||
Attached Files | CMake Instruments.png (259,912) 2011-09-16 14:46 https://public.kitware.com/Bug/file/4053/CMake%20Instruments.png tre.patch.tar.gz (66,020) 2011-11-22 13:24 https://public.kitware.com/Bug/file/4122/tre.patch.tar.gz | ||||
Issue History | |||||
Date Modified | Username | Field | Change | ||
2011-08-02 11:20 | Sean McBride | New Issue | |||
2011-08-29 12:53 | Bill Hoffman | Note Added: 0027285 | |||
2011-08-29 13:12 | Sean McBride | Note Added: 0027287 | |||
2011-08-29 13:23 | Bill Hoffman | Note Added: 0027289 | |||
2011-08-29 16:13 | Sean McBride | Note Added: 0027297 | |||
2011-08-30 17:20 | Bradley Lowekamp | Note Added: 0027305 | |||
2011-08-30 17:49 | Bill Hoffman | Note Added: 0027306 | |||
2011-08-30 17:55 | Bradley Lowekamp | Note Added: 0027307 | |||
2011-08-30 17:56 | Sean McBride | Note Added: 0027308 | |||
2011-09-09 06:10 | Pere Mato | Note Added: 0027396 | |||
2011-09-16 14:46 | Sean McBride | File Added: CMake Instruments.png | |||
2011-09-16 14:46 | Sean McBride | Note Added: 0027438 | |||
2011-10-21 14:22 | David Cole | Target Version | => CMake 2.8.7 | ||
2011-11-22 13:24 | Alexandru Ciobanu | File Added: tre.patch.tar.gz | |||
2011-11-22 13:27 | Alexandru Ciobanu | Note Added: 0027849 | |||
2011-11-22 17:01 | Alexandru Ciobanu | Note Added: 0027850 | |||
2011-11-28 08:38 | Brad King | Note Added: 0027855 | |||
2011-11-29 14:22 | Alexandru Ciobanu | Note Added: 0027872 | |||
2011-11-29 14:28 | Alexandru Ciobanu | Note Edited: 0027872 | bug_revision_view_page.php?bugnote_id=27872#r459 | ||
2011-12-13 19:34 | David Cole | Note Added: 0027974 | |||
2011-12-13 19:34 | David Cole | Target Version | CMake 2.8.7 => | ||
2012-08-11 11:46 | David Cole | Note Added: 0030321 | |||
2012-08-11 11:46 | David Cole | Description Updated | bug_revision_view_page.php?rev_id=764#r764 | ||
2012-08-11 11:46 | David Cole | Note Edited: 0030321 | bug_revision_view_page.php?bugnote_id=30321#r766 | ||
2013-10-11 16:22 | Brad King | Note Added: 0034106 | |||
2013-10-11 16:25 | Brad King | Note Added: 0034107 | |||
2013-10-11 16:25 | Brad King | Note Edited: 0034107 | bug_revision_view_page.php?bugnote_id=34107#r1281 | ||
2013-10-11 16:35 | Brad King | Note Added: 0034108 | |||
2016-06-10 14:28 | Kitware Robot | Note Added: 0041880 | |||
2016-06-10 14:28 | Kitware Robot | Status | new => resolved | ||
2016-06-10 14:28 | Kitware Robot | Resolution | open => moved | ||
2016-06-10 14:28 | Kitware Robot | Assigned To | => Kitware Robot | ||
2016-06-10 14:31 | Kitware Robot | Status | resolved => closed |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|