Hi Jeremy,
>
> It will also need a little polish to be available to the world. Open design
> questions for upstreaming are things like:
>
> - Should the interval between samples be configurable?
This could be helpful.
>
> - Should it *just* take a stack trace, or should the behavior be
> configurable? For example, we have a variant that allows it to invoke a
> callback on allocation. Do you want this? Because it is being called during
> allocation, the callback can't invoke JNI (because of the potential for a
> safepoint), so it might be somewhat confusing to the user.
As long of these features don’t contribute to sampling bias I think they’d (at
times) all be useful.
>
> - If the answer to the above is yes, should it be able to invoke *multiple*
> callbacks with multiple intervals? That could get very expensive and hairy.
>
> - Other than stack trace, what kind of information should the sampled data
> contain? Right now, the structure is:
>
> struct StackTraceData {
> ASGCT_CallTrace *trace;
> jint byte_size;
> jlong thread_id;
> const jbyte *name;
> jint name_length;
> jlong uid;
> };
If you could get age data that could be interesting as well.
Kind regards,
Kirk Pepperdine