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

java-allocation-instrumenter #1

Closed
fommil opened this issue Apr 17, 2014 · 4 comments
Closed

java-allocation-instrumenter #1

fommil opened this issue Apr 17, 2014 · 4 comments

Comments

@fommil
Copy link

fommil commented Apr 17, 2014

Hi, I was just wondering if you were aware of https://code.google.com/p/java-allocation-instrumenter/ ?

If so, is there anything your aprof does that it doesn't?

@elizarov
Copy link
Collaborator

They are completely different and solve different problems. Java allocation instrumenter is a library that let's you attach your own code to object allocations. Aprof, on the other hand, is a pure-java profiler that is used without any changes in the target code. It gathers detailed allocation statistics (which includes classes and where they are allocated from) with minimal runtime overhead and prints nicely formatted reports.

@fommil
Copy link
Author

fommil commented Apr 18, 2014

That's not entirely true of the Google project. I'm writing something similar to aprof - primarily targeting Scala - and by using the google agent it means my codebase is dramatically reduced.

I'm confused why you've re-implemented all the ASM - your approach is identical to theirs - so I am interested to know what extra value your codebase has over theirs.

@tsitelov
Copy link
Member

The key difference is that "instrumenter" provides generalized facility to attach custom code, but aprof is a ready-to-use profiler with various useful features.

@fommil
Copy link
Author

fommil commented Apr 18, 2014

yes, I understand that... what I don't understand is why you re-wrote the layer that does the instrumentation. Do you feel there is something wrong with the way that the google project are doing it?

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

No branches or pull requests

3 participants