cutter
cutter copied to clipboard
Graph overview
Processor: intel xeon e5-1650 v3
Dragging colored graph around consumes a lot of CPU and affects usability (lags, freezes).
Feature request: optimize graph redraw system :pleading_face: :pray:
How big function are you looking at? How many basic blocks and edges? Is it important that all the basic blocks are colored? I assume you used some kind of script or plugin to automatically color all the blocks.
The function is 4069 bytes long There are about 130 basic blocks and about 60 of them were colored. I don't have such scripts i just have a lot of free time :) However, i am thinking about implementing one.
Important note: The lags increase at zoom level where font begins to draw itself
Something doesn't seem right. There is definitely room for improvements and the CPU usage is somewhat higher than ideal, but it should be nowhere near as bad to cause anything what would consider lag and freezing especially with function of that size. I did a quick test on a ~ 6-7 year old laptop with 10 times bigger function and dragging the view around was sufficiently smooth. The delay when opening function and each time I changed color of a block was longer than I would like, but dragging the view around was good. It's only slightly newer than 8 year old server CPU you mentioned but by most performance metrics it should perform worse. Except maybe built-in GPU. Two more differences where that I tested on Linux and didn't spend time to color all the blocks. Not having blocks colored should have little impact on performance, but the drawing backend differences between Linux and windows might be part of problem.
You didn't answer to my previous question. Is coloring blocks important, does it not lag while dragging if blocks aren't colored?
Yes, sorry. Colored blocks greatly reduce perfomance. About 30-40 blocks are enough to delay UI feedback for 7-10 seconds in worst cases.
Last question (maybe). Can you tell the information asked in issue template: the exact version of cutter you used and where you obtained it (downloaded binary from github, compiled yourself or something else)?
Tried on windows and highlighting ~30 blocks. Same laptop as before with intel 6500U. Still couldn't repeat it. Didn't observe any significant lagging or freezing while dragging the view around.
Version 2.1.0
Using rizin 0.4.0 (7158b61)
Based on Qt 5.15.2 (MSVC 2017, 64 bit)
Obtained from releases page from cutter-v2.1.0-Windows-x86_64.zip asset