+------------------------------------------------------------------------------+
|                                                                              |
|  Dhananjaya D R                   @/logs   @/software   @/resume   @/contact |
|                                                                              |
+------------------------------------------------------------------------------+


Pitfalls of Java based profiling tools
________________________________________________________________________________

Profiling is important for optimising Java applications, but traditional Java 
based profiling tools come with their own set of challenges.

[1] Safe Points - Think of it like a speed camera only taking photos at red 
    lights. Most profilers take snapshots only when the program reaches certain
    “safe” places like stopping at red lights. But your program might be 
    speeding between the lights, and you would miss that.

[2] Performance Overhead - Java based profilers can slow down your app just by
    watching it, making it seem slower than it really is.

[3] Invisible JVM Intrinsics - Like looking at a cooked rice but not seeing the
    cooker that cooked. Some parts of the JVM are highly optimised and don't 
    show up in the profiler. You see the results but not the magic that made
    it fast. 
  
[4] Sampling Skid - Imagine trying to take a photo of a f1 car but you always 
    click a second too late. Sometimes profilers try to catch an event but miss
    the exact moment it happens, showing you misleading data.

[5] Heap Allocation Profiling Limitations - It's like checking groceries only on
    your kitchen shelves but ignoring the ones in store room.

[6] JVMTI Request Queueing Delays - Like sending help requests to customer 
    support and getting responses hours later.
    
________________________________________________________________________________