Jawaban:
Sampling
berarti mengambil banyak pembuangan ulir dan menganalisis jejak tumpukan. Ini biasanya lebih cepat, tidak memerlukan perubahan runtime di bytecode Anda (yang mungkin merusaknya), tetapi juga kurang akurat.
Profiling
berarti menginstruksikan kelas dan metode Anda, sehingga mereka "melaporkan" kapan pun mereka dijalankan. Ini lebih akurat, karena menghitung setiap doa metode yang diinstrumentasi, tidak hanya yang tertangkap ketika dump dilakukan. Namun instrumentasi berarti bahwa bytecode kelas Anda diubah, dan ini dapat merusak program Anda. Sebenarnya, untuk alasan itu, menggunakan profil pada server aplikasi besar (seperti JBoss, atau WebLogic) sering menyebabkan semuanya mati atau hang.