Skip to content

Instantly share code, notes, and snippets.

@liyanage
Last active June 4, 2018 20:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save liyanage/2c49ac0fbb0b259efb753737b83f8654 to your computer and use it in GitHub Desktop.
Save liyanage/2c49ac0fbb0b259efb753737b83f8654 to your computer and use it in GitHub Desktop.
/*
sudo dtrace -q -p $(pgrep 'Autodesk Fusion 360') -s fusion-360-zoom-trackpad-delay.d
*/
BEGIN
{
eventcounter = 0;
rendercounter = 0;
eventtime = 0;
max_delay = 300;
printf("time %d ready\n", timestamp / 1000000);
}
objc$target:QNSView:-magnifyWithEvent?:entry
{
eventcounter++;
if (!eventtime) {
eventtime = timestamp;
}
printf("time %d [thread %d] \033[0;31munhandled magnify event #%d\033[0m\033[K\r", timestamp / 1000000, tid, eventcounter);
}
objc$target:QNSView:-scrollWheel?:entry
{
eventcounter++;
if (!eventtime) {
eventtime = timestamp;
}
printf("time %d [thread %d] \033[0;31munhandled scroll event #%d\033[0m\033[K\r", timestamp / 1000000, tid, eventcounter);
}
pid$target::Ns??Scene??ViewRenderer??render(Ns??Scene??EInvalidateType):entry
{
rendercounter++;
if (eventtime) {
delay_ms = (timestamp - eventtime) / 1000000;
eventtime = 0;
}
if (delay_ms > max_delay) {
printf("\033[0;31m");
}
printf("time %d [thread %d] render event #%d delay %dms \r", timestamp / 1000000, tid, rendercounter, delay_ms);
if (delay_ms) {
@delays = quantize(delay_ms);
if (delay_ms > max_delay) {
printf("\033[0m\n");
}
delay_ms = 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment