Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

heap header exceptions very slow due to unnecessary dr_memory_is_readable() check #171

Open
derekbruening opened this issue Nov 28, 2014 · 0 comments

Comments

@derekbruening
Copy link
Contributor

From derek.br...@gmail.com on December 10, 2010 17:58:13

PR 503779

the up-front dr_memory_is_readable() check on unaddr exceptions is wasteful
for heap header exceptions. moving it to after heap header and tls
exception checks results in a 10x speedup on twolf test!

it had >100K header exceptions and spent all its time in libc vfscanf
from the /proc/maps iteration: not sure why not using cached allmem.
now, we have no pc sampling hits at all in libc.

PR 503779: heap header exceptions very slow due to unnecessary
dr_memory_is_readable() check

  • moved dr_memory_is_readable() check to after heap header and tls
    exception checks, which results in a 10x speedup on twolf test!
    it had >100K header exceptions and spent all its time in libc vfscanf
    from the /proc/maps iteration: not sure why not using cached allmem.
    now, we have no pc sampling hits at all in libc.

    => unknown large speedup on vortex (always killed it before), 10x speedup
    on twolf and mcf, 5x on perlbmk and vpr, 40% on gcc (all test inputs)

Original issue: http://code.google.com/p/drmemory/issues/detail?id=171

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant