Skip to content

Instantly share code, notes, and snippets.

@abyss7
Created September 12, 2019 20:35
Show Gist options
  • Save abyss7/3755d4c0a35b7d0211c695b659cdd662 to your computer and use it in GitHub Desktop.
Save abyss7/3755d4c0a35b7d0211c695b659cdd662 to your computer and use it in GitHub Desktop.
Analysis based on Clang -ftime-trace
**** Time summary:
Compilation (5780 times):
Parsing (frontend): 9377.0 s
Codegen & opts (backend): 6879.6 s
**** Files that took longest to parse (compiler frontend):
28008 ms: build/dbms/src/Functions/GatherUtils/CMakeFiles/clickhouse_functions_gatherutils.dir/has.cpp.o
24678 ms: build/contrib/arrow-cmake/CMakeFiles/arrow_shared.dir/__/arrow/cpp/src/arrow/compute/kernels/cast.cc.o
21463 ms: build/dbms/src/AggregateFunctions/CMakeFiles/clickhouse_aggregate_functions.dir/AggregateFunctionQuantile.cpp.o
21209 ms: build/dbms/CMakeFiles/clickhouse_interpreters.dir/src/Interpreters/InterpreterSelectQuery.cpp.o
21038 ms: build/dbms/src/Functions/CMakeFiles/clickhouse_functions.dir/pointInPolygon.cpp.o
19767 ms: build/dbms/src/Functions/CMakeFiles/clickhouse_functions.dir/FunctionsConversion.cpp.o
19372 ms: build/dbms/CMakeFiles/clickhouse_storages.dir/src/Storages/StorageReplicatedMergeTree.cpp.o
18838 ms: build/dbms/programs/server/CMakeFiles/clickhouse-server-lib.dir/Server.cpp.o
18461 ms: build/dbms/src/Functions/CMakeFiles/clickhouse_functions.dir/greaterOrEquals.cpp.o
18425 ms: build/dbms/src/Functions/GatherUtils/CMakeFiles/clickhouse_functions_gatherutils.dir/sliceFromRightConstantOffsetBounded.cpp.o
**** Files that took longest to codegen (compiler backend):
214832 ms: build/dbms/src/Functions/CMakeFiles/clickhouse_functions.dir/lessOrEquals.cpp.o
210264 ms: build/dbms/src/Functions/CMakeFiles/clickhouse_functions.dir/greaterOrEquals.cpp.o
149414 ms: build/dbms/src/Functions/CMakeFiles/clickhouse_functions.dir/less.cpp.o
139783 ms: build/dbms/src/Functions/CMakeFiles/clickhouse_functions.dir/greater.cpp.o
123891 ms: build/dbms/src/Functions/GatherUtils/CMakeFiles/clickhouse_functions_gatherutils.dir/has.cpp.o
101221 ms: build/dbms/src/Functions/GatherUtils/CMakeFiles/clickhouse_functions_gatherutils.dir/concat.cpp.o
82380 ms: build/dbms/src/AggregateFunctions/CMakeFiles/clickhouse_aggregate_functions.dir/AggregateFunctionQuantile.cpp.o
78994 ms: build/dbms/src/Functions/GatherUtils/CMakeFiles/clickhouse_functions_gatherutils.dir/sliceDynamicOffsetBounded.cpp.o
76607 ms: build/dbms/src/Functions/CMakeFiles/clickhouse_functions.dir/equals.cpp.o
72237 ms: build/dbms/src/Functions/CMakeFiles/clickhouse_functions.dir/notEquals.cpp.o
**** Templates that took longest to instantiate:
129597 ms: std::__1::__function::__func<(lambda at ../dbms/src/Columns/IColumn.... (2748 times, avg 47 ms)
118245 ms: std::__1::function<void (COW<DB::IColumn>::chameleon_ptr<DB::IColumn... (916 times, avg 129 ms)
117309 ms: std::__1::__function::__value_func<void (COW<DB::IColumn>::chameleon... (916 times, avg 128 ms)
75416 ms: std::__1::__function::__alloc_func<(lambda at ../dbms/src/Columns/IC... (2748 times, avg 27 ms)
61329 ms: ThreadFromGlobalPool::ThreadFromGlobalPool<void (DB::SessionCleaner:... (320 times, avg 191 ms)
56440 ms: DB::castTypeToEither<DB::DataTypeNumber<unsigned char>, DB::DataType... (42 times, avg 1343 ms)
55379 ms: DB::castTypeToEither<DB::DataTypeNumber<unsigned char>, DB::DataType... (630 times, avg 87 ms)
52543 ms: std::__1::__function::__func<(lambda at ../dbms/src/Common/ThreadPoo... (1104 times, avg 47 ms)
48941 ms: std::__1::unordered_map<unsigned long, std::__1::vector<bool, std::_... (887 times, avg 55 ms)
47564 ms: std::__1::function<void ()>::function<(lambda at ../dbms/src/Common/... (368 times, avg 129 ms)
47193 ms: std::__1::__function::__value_func<void ()>::__value_func<(lambda at... (368 times, avg 128 ms)
44752 ms: std::__1::__function::__func<std::__1::shared_ptr<DB::IFunctionBuild... (921 times, avg 48 ms)
43334 ms: std::__1::__function::__func<(lambda at ../dbms/src/Columns/IColumn.... (1832 times, avg 23 ms)
40952 ms: std::__1::function<std::__1::shared_ptr<DB::IFunctionBuilder> (const... (307 times, avg 133 ms)
40671 ms: std::__1::__function::__value_func<std::__1::shared_ptr<DB::IFunctio... (307 times, avg 132 ms)
38709 ms: DB::Field::dispatch<(lambda at ../dbms/src/Core/Field.h:500:18), con... (1014 times, avg 38 ms)
34353 ms: std::__1::unordered_map<std::__1::basic_string<char>, std::__1::uniq... (750 times, avg 45 ms)
33987 ms: std::__1::__hash_table<std::__1::__hash_value_type<unsigned long, st... (887 times, avg 38 ms)
31887 ms: DB::callOnBasicTypes<true, false, true, false, (lambda at ../dbms/sr... (12 times, avg 2657 ms)
31003 ms: std::__1::unordered_map<std::__1::basic_string<char>, std::__1::basi... (663 times, avg 46 ms)
30834 ms: std::__1::__function::__alloc_func<(lambda at ../dbms/src/Common/Thr... (1104 times, avg 27 ms)
30131 ms: std::__1::variant<std::__1::unique_ptr<unsigned char [], std::__1::d... (90 times, avg 334 ms)
29880 ms: DB::Field::dispatch<(lambda at ../dbms/src/Core/Field.h:505:18), DB:... (1014 times, avg 29 ms)
29517 ms: std::__1::unordered_map<StringRef, unsigned long, std::__1::hash<Str... (567 times, avg 52 ms)
27450 ms: std::__1::make_shared<DB::DefaultFunction, const std::__1::shared_pt... (327 times, avg 83 ms)
27245 ms: std::__1::shared_ptr<DB::DefaultFunction>::make_shared<const std::__... (327 times, avg 83 ms)
26636 ms: std::__1::__hash_table<std::__1::__hash_value_type<std::__1::basic_s... (750 times, avg 35 ms)
26106 ms: std::__1::__function::__alloc_func<std::__1::shared_ptr<DB::IFunctio... (921 times, avg 28 ms)
25852 ms: std::__1::map<std::__1::basic_string<char>, unsigned long, std::__1:... (1043 times, avg 24 ms)
25388 ms: DB::LRUCache<DB::UInt128, DB::UncompressedCacheCell, DB::UInt128Triv... (235 times, avg 108 ms)
**** Functions that took longest to compile:
12512 ms: DB::CompressionCodecT64::doDecompressData(char const*, unsigned int,... (../dbms/src/Compression/CompressionCodecT64.cpp)
10005 ms: match (../contrib/poco/Foundation/src/pcre_exec.c)
4286 ms: roseRunProgram (../contrib/hyperscan/src/rose/program_runtime.c)
4234 ms: DB::Server::main(std::__1::vector<std::__1::basic_string<char, std::... (../dbms/programs/server/Server.cpp)
3349 ms: DB::PerformanceTest::checkPreconditions() const (../dbms/programs/performance-test/PerformanceTest.cpp)
2838 ms: ue2::parse(char const*, ue2::ParseMode&) (../contrib/hyperscan/src/parser/Parser.cpp)
2349 ms: ue2::RoseBuildImpl::buildFinalEngine(unsigned int) (../contrib/hyperscan/src/rose/rose_build_bytecode.cpp)
2086 ms: DB::FunctionsLogicalDetail::FunctionAnyArityLogical<DB::FunctionsLog... (../dbms/src/Functions/FunctionsLogical.cpp)
2060 ms: void DB::(anonymous namespace)::TypedExecutorInvoker<DB::FunctionsLo... (../dbms/src/Functions/FunctionsLogical.cpp)
1841 ms: DB::StorageReplicatedMergeTree::executeReplaceRange(DB::ReplicatedMe... (../dbms/src/Storages/StorageReplicatedMergeTree.cpp)
1837 ms: void DB::(anonymous namespace)::TypedExecutorInvoker<DB::FunctionsLo... (../dbms/src/Functions/FunctionsLogical.cpp)
1764 ms: internal_dfa_exec (../contrib/poco/Foundation/src/pcre_dfa_exec.c)
1720 ms: DB::StorageReplicatedMergeTree::alter(DB::AlterCommands const&, DB::... (../dbms/src/Storages/StorageReplicatedMergeTree.cpp)
1621 ms: compile_branch (../contrib/poco/Foundation/src/pcre_compile.c)
1538 ms: ue2::doInitialVioletTransform(ue2::NGHolder const&, bool, ue2::Compi... (../contrib/hyperscan/src/nfagraph/ng_violet.cpp)
1486 ms: DB::MergeTreeDataSelectExecutor::readFromParts(std::__1::vector<std:... (../dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp)
1442 ms: DB::CompressionCodecT64::doCompressData(char const*, unsigned int, c... (../dbms/src/Compression/CompressionCodecT64.cpp)
1321 ms: DB::ParquetBlockOutputFormat::consume(DB::Chunk) (../dbms/src/Processors/Formats/Impl/ParquetBlockOutputFormat.cpp)
1248 ms: DB::HTTPHandler::processQuery(Poco::Net::HTTPServerRequest&, HTMLFor... (../dbms/programs/server/HTTPHandler.cpp)
1179 ms: DB::ExpressionAction::execute(DB::Block&, bool) const (../dbms/src/Interpreters/ExpressionActions.cpp)
1159 ms: void DB::ComplexKeyCacheDictionary::getItemsString<DB::ComplexKeyCac... (../dbms/src/Dictionaries/ComplexKeyCacheDictionary.cpp)
1158 ms: roseStreamExec (../contrib/hyperscan/src/rose/stream.c)
1149 ms: DB::ArrowColumnToCHColumn::arrowTableToCHChunk(DB::Chunk&, std::__1:... (../dbms/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp)
1113 ms: DB::SyntaxAnalyzer::analyze(std::__1::shared_ptr<DB::IAST>&, DB::Nam... (../dbms/src/Interpreters/SyntaxAnalyzer.cpp)
1105 ms: parquet::arrow::(anonymous namespace)::ArrowColumnWriter::Write(arro... (../contrib/arrow/cpp/src/parquet/arrow/writer.cc)
1091 ms: nfaExecCastle_Q (../contrib/hyperscan/src/nfa/castle.c)
1073 ms: DB::SettingsCollection<DB::Settings>::MemberInfos::MemberInfos() (../dbms/src/Core/Settings.cpp)
1039 ms: ue2::RoseBuildImpl::buildRose(unsigned int) (../contrib/hyperscan/src/rose/rose_build_compile.cpp)
1027 ms: DB::MergingSortedTransform::prepare() (../dbms/src/Processors/Transforms/MergingSortedTransform.cpp)
997 ms: nfaExecMpv_QueueExecRaw (../contrib/hyperscan/src/nfa/mpv.c)
*** Expensive headers:
683109 ms: ../dbms/src/Core/Field.h (included 1013 times, avg 674 ms), included via:
FieldToDataType.cpp.o FieldVisitors.h (2293 ms)
DataTypeLowCardinalityHelpers.cpp.o ColumnArray.h IColumn.h (2270 ms)
concat.cpp.o ColumnString.h IColumn.h (2167 ms)
StorageSystemReplicas.cpp.o ColumnString.h IColumn.h (2143 ms)
sliceFromRightConstantOffsetBounded.cpp.o Selectors.h Algorithms.h FieldVisitors.h (2121 ms)
DataTypeLowCardinality.cpp.o ColumnLowCardinality.h IColumn.h (2109 ms)
...
669676 ms: ../dbms/src/Core/Block.h (included 885 times, avg 756 ms), included via:
PartialSortingBlockInputStream.cpp.o sortBlock.h (3272 ms)
ReverseBlockInputStream.cpp.o ReverseBlockInputStream.h IBlockInputStream.h (3231 ms)
RemoteBlockOutputStream.cpp.o RemoteBlockOutputStream.h (3209 ms)
DirectoryMonitor.cpp.o RemoteBlockOutputStream.h (3168 ms)
PushingToViewsBlockOutputStream.cpp.o AddingDefaultBlockOutputStream.h IBlockOutputStream.h (3143 ms)
MergeTreeDataWriter.cpp.o MergeTreeDataWriter.h (3066 ms)
...
663041 ms: ../dbms/src/Functions/IFunction.h (included 327 times, avg 2027 ms), included via:
queryString.cpp.o FunctionFactory.h (4034 ms)
pointInPolygon.cpp.o FunctionFactory.h (3935 ms)
topLevelDomain.cpp.o FunctionFactory.h (3815 ms)
runningAccumulate.cpp.o (3753 ms)
rowNumberInAllBlocks.cpp.o (3654 ms)
queryStringAndFragment.cpp.o FunctionFactory.h (3644 ms)
...
399844 ms: ../contrib/poco/Foundation/include/Poco/Foundation.h (included 1677 times, avg 238 ms), included via:
ClusterCopier.cpp.o ClusterCopier.h ServerApplication.h Util.h (1005 ms)
NotFoundHandler.cpp.o NotFoundHandler.h HTTPRequestHandler.h Net.h (1002 ms)
OwnFormattingChannel.cpp.o OwnFormattingChannel.h AutoPtr.h (995 ms)
TaskNotification.cpp.o TaskNotification.h (966 ms)
Path.cpp.o Path.h (959 ms)
ExternalLoaderConfigRepository.cpp.o ExternalLoaderConfigRepository.h IExternalLoaderConfigRepository.h AutoPtr.h (958 ms)
...
358182 ms: ../dbms/src/Columns/IColumn.h (included 916 times, avg 391 ms), included via:
DataTypeLowCardinalityHelpers.cpp.o ColumnArray.h (2854 ms)
DataTypeLowCardinality.cpp.o ColumnLowCardinality.h (2673 ms)
concat.cpp.o ColumnString.h (2643 ms)
StorageSystemReplicas.cpp.o ColumnString.h (2574 ms)
FunctionsStringRegex.cpp.o FunctionsStringRegex.h ColumnArray.h (2393 ms)
DataTypeArray.cpp.o ColumnArray.h (2391 ms)
...
356179 ms: ../contrib/poco/Foundation/include/Poco/Bugcheck.h (included 1065 times, avg 334 ms), included via:
ClusterCopier.cpp.o ClusterCopier.h ServerApplication.h Util.h Foundation.h (920 ms)
NotFoundHandler.cpp.o NotFoundHandler.h HTTPRequestHandler.h Net.h Foundation.h (916 ms)
OwnFormattingChannel.cpp.o OwnFormattingChannel.h AutoPtr.h Foundation.h (911 ms)
TaskNotification.cpp.o TaskNotification.h Foundation.h (885 ms)
ExternalLoaderConfigRepository.cpp.o ExternalLoaderConfigRepository.h IExternalLoaderConfigRepository.h AutoPtr.h Foundation.h (875 ms)
Path.cpp.o Path.h Foundation.h (874 ms)
...
351034 ms: ../dbms/src/Functions/FunctionFactory.h (included 318 times, avg 1103 ms), included via:
queryString.cpp.o (4306 ms)
pointInPolygon.cpp.o (4206 ms)
topLevelDomain.cpp.o (4204 ms)
queryStringAndFragment.cpp.o (3946 ms)
greatest.cpp.o (3830 ms)
greaterOrEquals.cpp.o (3741 ms)
...
335284 ms: ../dbms/src/Storages/IStorage.h (included 181 times, avg 1852 ms), included via:
StorageFile.cpp.o StorageFile.h (6426 ms)
InterpreterDescribeQuery.cpp.o (6421 ms)
StorageSystemPartsColumns.cpp.o StorageSystemPartsColumns.h StorageSystemPartsBase.h (5958 ms)
StorageInput.cpp.o StorageInput.h (5693 ms)
IStorage.cpp.o (5520 ms)
TableFunctionHDFS.cpp.o StorageHDFS.h (5518 ms)
...
326846 ms: ../dbms/src/DataTypes/IDataType.h (included 930 times, avg 351 ms), included via:
DataTypeNumberBase.cpp.o DataTypeNumberBase.h (2314 ms)
DataTypeNullable.cpp.o DataTypeNullable.h (2168 ms)
DataTypeInterval.cpp.o DataTypeInterval.h DataTypeNumberBase.h (2103 ms)
arrayCumSum.cpp.o DataTypesNumber.h DataTypeNumberBase.h (2094 ms)
arrayAll.cpp.o DataTypesNumber.h DataTypeNumberBase.h (2093 ms)
DictionaryStructure.cpp.o DictionaryStructure.h (2067 ms)
...
264670 ms: ../dbms/src/Common/PODArray.h (included 940 times, avg 281 ms), included via:
formatString.cpp.o ColumnFixedString.h (2125 ms)
CompressedReadBufferFromFile.cpp.o CompressedReadBufferFromFile.h CompressedReadBufferBase.h (1971 ms)
PODArray.cpp.o (1869 ms)
DataTypeFixedString.cpp.o ColumnFixedString.h (1712 ms)
CompressedReadBuffer.cpp.o CompressedReadBuffer.h CompressedReadBufferBase.h (1445 ms)
ProtobufReader.cpp.o ProtobufReader.h (1390 ms)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment