Replies: 2 comments 2 replies
-
C++ takes ages to compile. Colour me surprised. |
Beta Was this translation helpful? Give feedback.
0 replies
-
I guess the interesting parts are things that are not C++, like LZ4. On the other hand, I would rather pay extra compilation time for parson (also on one of the lists) than glue (and in the future parse) JSON myself, hoping to do better. |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I recently learned about ClangBuildAnalyzer, a tool that helps parsing the json files generated by clang's
-ftime-trace
, contributed by the same author and landed in Clang 9 in Sept 2019. https://aras-p.info/blog/2019/01/16/time-trace-timeline-flame-chart-profiler-for-Clang/I was curious on what is taking time in our builds on the C/C++ side, if ever there were some optimizations possible.
I built ClangBuildAnalyzer from source with CMake, from the main branch at aras-p/ClangBuildAnalyzer@fc7ff35
I then did:
Profile files:
The files that can be individually opened in
chrome://tracing
are the json files next to the object files. they aren't uploaded here.There are way less interesting details on object files that weren't C++.
I was using clang 18.1.8:
Summary as colored screenshots
From first run:
![image](https://private-user-images.githubusercontent.com/27212526/376415905-87d83fdd-f298-4558-b206-12c83f457a28.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NzQ2NDUsIm5iZiI6MTczOTU3NDM0NSwicGF0aCI6Ii8yNzIxMjUyNi8zNzY0MTU5MDUtODdkODNmZGQtZjI5OC00NTU4LWIyMDYtMTJjODNmNDU3YTI4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDIzMDU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRkYTJhZmZmZDA5MGFiZTVmMDBhYmFhN2RkOGJhYjdkYTQ4MWY3MTY4N2QzYTdlODM3MDE5ZGZlN2EzYWQ4NjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.IgPbSN3tHYYZYLVByTtuMm-0ECZrPY6qGkBnIIJhb0c)
![image](https://private-user-images.githubusercontent.com/27212526/376415976-9310cf5b-686f-40fe-afac-62e016e7549a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NzQ2NDUsIm5iZiI6MTczOTU3NDM0NSwicGF0aCI6Ii8yNzIxMjUyNi8zNzY0MTU5NzYtOTMxMGNmNWItNjg2Zi00MGZlLWFmYWMtNjJlMDE2ZTc1NDlhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDIzMDU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZiNjViMTRjNmIwNWNmNzk4MDBlN2Y5N2E4NWRkZDYxYmNhMTFmYWIzOWUzODZlMDY3YzE1MGVmMzk4YTNhNWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.1XIpuaOnVsRjXspiegVrpHwD7eFBHdno11fp02y2CUc)
![image](https://private-user-images.githubusercontent.com/27212526/376416053-9e40b50c-9460-4e0f-9309-b6455088efdd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NzQ2NDUsIm5iZiI6MTczOTU3NDM0NSwicGF0aCI6Ii8yNzIxMjUyNi8zNzY0MTYwNTMtOWU0MGI1MGMtOTQ2MC00ZTBmLTkzMDktYjY0NTUwODhlZmRkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDIzMDU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgwNDUzMDUyY2MxOTdkMjE2YTE0Y2ViZDllNjlhYmRjNTk3M2RkNjJmOWJiN2E1MzdjNGIyYzQ0ZDJlMjFhNWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QhCjKLcSE8K59Vz-BPgMU3DPWhXC4wm5OJwEXyZaVDY)
![image](https://private-user-images.githubusercontent.com/27212526/376416076-04e15c77-5c86-4c1c-acc7-99a51e1bda1b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NzQ2NDUsIm5iZiI6MTczOTU3NDM0NSwicGF0aCI6Ii8yNzIxMjUyNi8zNzY0MTYwNzYtMDRlMTVjNzctNWM4Ni00YzFjLWFjYzctOTlhNTFlMWJkYTFiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDIzMDU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJhMDYwNDkzMWQzZDU4ZTMzNzUzMzAwY2NlNDBmYjA0MWI0YTU1YzFkYWIzMDBiMmY1ZTg1NTIzMzUzNzYzMTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.nO_Ke-fTBGnhfcUIA-IbQRiQwadWf3C-KGqKO3WpQSk)
![image](https://private-user-images.githubusercontent.com/27212526/376416104-ffe70661-5673-4fc4-aedc-6ec810d540e4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NzQ2NDUsIm5iZiI6MTczOTU3NDM0NSwicGF0aCI6Ii8yNzIxMjUyNi8zNzY0MTYxMDQtZmZlNzA2NjEtNTY3My00ZmM0LWFlZGMtNmVjODEwZDU0MGU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDIzMDU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA4MWQzNGEyMWIyODc5MDIyZGQwN2I1YjQxMzdmNTZlMTNjMDRkODhkYjU5ZjMyMzI4YWFjZGRhZjQ3N2M5OWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XUfMSN1QgYqL74MuX4mLfX5ZonbZt5iYOihZpLYNKe8)
![image](https://private-user-images.githubusercontent.com/27212526/376416126-63967a80-6e81-4e45-a60a-5a4e6887fb4b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NzQ2NDUsIm5iZiI6MTczOTU3NDM0NSwicGF0aCI6Ii8yNzIxMjUyNi8zNzY0MTYxMjYtNjM5NjdhODAtNmU4MS00ZTQ1LWE2MGEtNWE0ZTY4ODdmYjRiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDIzMDU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUzNDQ5MjhmZjk4ZDU4NmVkMDMyZTk2NmE1OWU4Y2Q4M2Y5MGQwMWRiZjliM2M5NDNiMmUyNzI1MTc5YTQzNzgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.14s-s_WfNZ_hgPshLJDzvDm2zvlF3tipNFoWH8jDLzk)
The json file for v.in.pdal's main.o compilation (one of the longest to parse), opened in
![image](https://private-user-images.githubusercontent.com/27212526/376421814-b4daa8d2-35db-423f-80f8-784e96ff965f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NzQ2NDUsIm5iZiI6MTczOTU3NDM0NSwicGF0aCI6Ii8yNzIxMjUyNi8zNzY0MjE4MTQtYjRkYWE4ZDItMzVkYi00MjNmLTgwZjgtNzg0ZTk2ZmY5NjVmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDIzMDU0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJiMTA5MGE3M2QxMTMxYWUyMTcwODEzMDI0ZGU2NzBkMmY5NDg3OWVhNjgxOTA5ZjdhNDNlOTc2ZWJiNTg3NzgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0._JU9NkbPwEfOzEZFaMv_PHxp8xrpkVmw8isogYq6bIU)
chrome://tracing
:Summary as text (first run)
Summary as text (run 2)
Other interesting reads:
Beta Was this translation helpful? Give feedback.
All reactions