Permalink
Show file tree
Hide file tree
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
This PR introduces several performance optimizations for the binary w…
…rite/build process - it changes the way how the number of symbols is reduced and how offsets to names are calculated. Instead of n^2 algorithms, it introduces nlog(n) algorithm. When the symbols optimization step is performed map<symbol_name, offset_to_name> is created so it saves another n^2 pass - a couple of performance improvements to filter_iterator - from pre to post incrementation to save an unneeded copy, memoization of end iterator as the compiler cannot do it on its own and recreates it every loop iteration, simplified construction of the end iterator on the test binary that has a couple of hundreds of MB, it reduces the execution time of elf_add_section example form 20 minutes to a couple of seconds - adds an ability to modify single value inplace in the sectiton to save coying it just to do that - the reason behind this patch is to use LIEF as a patchelf replacement so the performance is one of the factors Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
- Loading branch information
Showing
6 changed files
with
168 additions
and
67 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters