#!/usr/sbin/dtrace -s hotspot$1:::monitor-contended-enter /copyinstr(arg2,arg3)=="org/netbeans/api/java/source/JavaSource$InternalLock"/ { self->ts = timestamp; printf ("|Thread %d enter monitor %d timestamp: %d\n", arg0, arg1, self->ts); } hotspot$1:::monitor-contended-entered /self->ts && copyinstr(arg2,arg3)=="org/netbeans/api/java/source/JavaSource$InternalLock"/ { printf ("|Thread %d entered monitor %d timestamp: %d delay: %d s\n",arg0, arg1, timestamp, (timestamp-self->ts)/1000000000); self->ts = 0; } hotspot$1:::monitor-contended-exit /copyinstr(arg2,arg3)=="org/netbeans/api/java/source/JavaSource$InternalLock"/ { printf ("|Thread %d exit monitor %d timestamp: %d\n", arg0, arg1, timestamp); }