Dear AddressSanitizer developers,

I'm thinking about ways to optimize the performance of ASan's allocator.
There are a few benchmarks where a large fraction of the overhead comes
from the allocator and the quarantine queue, rather than the checks
themselves (e.g., gcc from SPEC2006).

When I looked at the allocator, I was surprised that it is implemented
inside ASan's runtime library (or rather, in sanitizer_common). This is
unlike other intercepted functions such as strcpy, which forward to the
implementation from libc. What is the reason for this?

Would it be possible to implement asan_malloc as a decorator on top of libc
malloc? Or on top of an existing implementation such as tcmalloc? This
seems desirable to me because these are highly tuned. It might also
simplify the sanitizer codebase.

I'm sure this case has been considered. What are the reasons for the
current design?

Besides this question, I wonder if there are other ways of optimizing the
allocator or the quarantine mechanism. If you can think of any (relatively)
low-hanging fruit, I'd be motivated to give it a try.

Best,
Jonas

-- 
You received this message because you are subscribed to the Google Groups 
"address-sanitizer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to