You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Reduce Compilation Time by Refactoring Include Directives and/or hpp-cpp Implementation Divisions #1803
User Story
As the (ape) programmer I want (banana) fast compilation time so that it is easier to work with the code base.
I would like to try reducing the compilation time with the two following approaches:
refactor include directives: They are pretty messy and many files include unneeded files.
refactor hpp/cpp implementations: Maybe some often-included headers including implementations could be factored out into cpp files providing some benefits for the compilation time.
Impacts
API (the application programming interface)
Build (the build process or something prior to compiled code)
CLI (the command line wallet)
Deployment (the deployment process after building such as Docker, Travis, etc.)
DEX (the Decentralized EXchange, market engine, etc.)
P2P (the peer-to-peer network for transaction/block propagation)
Performance (system or user efficiency, etc.)
Protocol (the blockchain logic, consensus, validation, etc.)
Security (the security of system or user data, etc.)
I agree on giving this a try even if i am not sure how much time we will be able to really reduce in compilation with the described techniques.
We will accept any pull request that removes non needed headers, guaranteed.
Metrics on before and after changes can be done. Please note that we should use develop branch as there are already made improvements in compile time thanks to #1768
A further 10% (or more) reduction in compile time in my opinion will be good enough if we don't have to sacrifice anything.
Let us know how much hours do you plan to invest in this research initially.
You should definitely base any work in that direction on #1768 to avoid duplicate effort.
I doubt that removing includes will bring a large improvement, thanks to pragma once.
During #1768 I have tried a few things (e. g. instantiating index templates and object_ids explicitly) that I later rolled back again because they had a devastating effect on runtime performance. Please keep an eye on that.
Activity
oxarbitrage commentedon Jun 17, 2019
I agree on giving this a try even if i am not sure how much time we will be able to really reduce in compilation with the described techniques.
We will accept any pull request that removes non needed headers, guaranteed.
Metrics on before and after changes can be done. Please note that we should use
developbranch as there are already made improvements in compile time thanks to #1768A further 10% (or more) reduction in compile time in my opinion will be good enough if we don't have to sacrifice anything.
Let us know how much hours do you plan to invest in this research initially.
pmconrad commentedon Jun 18, 2019
You should definitely base any work in that direction on #1768 to avoid duplicate effort.
I doubt that removing includes will bring a large improvement, thanks to
pragma once.During #1768 I have tried a few things (e. g. instantiating index templates and object_ids explicitly) that I later rolled back again because they had a devastating effect on runtime performance. Please keep an eye on that.
abitmore commentedon Sep 12, 2019
Is this still needed?