Vector35 / binaryninja-api

Public API, examples, documentation and issues for Binary Ninja
https://binary.ninja/
MIT License
896 stars 200 forks source link

Stack view under load causes UI lockup #2817

Open yrp604 opened 2 years ago

yrp604 commented 2 years ago

Version and Platform (required):

Bug Description: When navigating around a binary while its still being analyzed, the UI will lockup and be completely unresponsive for 30+ seconds at a time.

Steps To Reproduce: Please provide all steps required to reproduce the behavior:

  1. Get a large binary, I'm using XNU from /System/Library/Kernels/kernel.release.t6000
  2. Bring the stack view into focus
  3. Before the binary has finished analyzing, navigate to random functions
  4. See UI hang

Expected Behavior: I expect the UI to not hang under analysis pressure

jonpalmisc commented 2 years ago

Note to myself: Took a look at this in Instruments. Looks like the repaint event (the likely culprit) this is primarily bounded Qt methods — doesn't mean things can't be optimized elsewhere, but there were no "easy win" performance gains when I went digging.

image

Possible solution: attempt to put a cap on the amount of repaints that occur in N .

jonpalmisc commented 2 years ago

@yrp604 The lag is disproportionately more noticeable when Stack View is open compared to anything else being open?