• Jason Rhinelander's avatar
    Add debugging info about .so size to build output (#477) · dc0b4bd2
    Jason Rhinelander authored
    * Add debugging info about so size to build output
    
    This adds a small python script to tools that captures before-and-after
    .so sizes between builds and outputs this in the build output via a
    string such as:
    
    ------ pybind11_tests.cpython-35m-x86_64-linux-gnu.so file size: 924696 (decrease of 73680 bytes = 7.38%)
    
    ------ pybind11_tests.cpython-35m-x86_64-linux-gnu.so file size: 998376 (increase of 73680 bytes = 7.97%)
    
    ------ pybind11_tests.cpython-35m-x86_64-linux-gnu.so file size: 998376 (no change)
    
    Or, if there was no .so during the build, just the .so size by itself:
    
    ------ pybind11_tests.cpython-35m-x86_64-linux-gnu.so file size: 998376
    
    This allows you to, for example, build, checkout a different branch,
    rebuild, and easily see exactly the change in the pybind11_tests.so
    size.
    
    It also allows looking at the travis and appveyor build logs to get an
    idea of .so/.dll sizes across different build systems.
    
    * Minor libsize.py script changes
    
    - Use RAII open
    - Remove unused libsize=-1
    - Report change as [+-]xyz bytes = [+-]a.bc%
    dc0b4bd2
libsize.py 1.06 KB