Speed up map creation.
- Rewrite the Maps::Parse to use open, and a buffer on the stack. - Rewrite the line parser away from sscanf. The current way sscanf is used does not catch many malformed lines. In addition, this new version improves performance by 50% over sscanf on sailfish. - Add a lot of unit tests for the parser to make sure there are no problems. In addition, add a special line that was not rejected with the previous version of the code. - Add new accessor to get the map at a particular index. - Add a backtrace benchmark for map creation for both new and old. This cl results in ~5% speedup and makes the new unwinder map creation about the same for 64 bit. It's still a bit slower, but not by much. On 32 bit, we are still about 5% slower than the old creation method, though. Bug: 23762183 Test: libunwindstack unit tests pass. Ran the new benchmarks. Change-Id: Id4431e539f400984e6fad62153fdf4152d518322
Loading
Please register or sign in to comment