peace-maker / lysis-java

Lysis - SourceMod .smx and AMXModX .amxx decompiler
110 stars 39 forks source link

[Performance Issue] BlockAnylsis.StrictlyDominatesADominator() unoptimized #33

Open Timocop opened 3 years ago

Timocop commented 3 years ago

On large plugins it spends ~90% of the time comparing dominators inside BlockAnylsis.StrictlyDominatesADominator() and dominators() returning a whole array in a loop every time (which is ~60% of the time by itself). Which slows down the whole decompilation process. Maybe using some kind of List or a property where you pass the index instead would speed it up.

Right now im profiling it using .NET Lysis, but should not be so different in Java i assume. Because i have no idea how to profile Java 😅. dnSpy_2021-06-18_13-54-17

Right now i don't have Eclipse installed to create a Pull request so i create an issue instead.

Timocop commented 3 years ago

Seems like on Java this issue is no different (Used JProfiler).

jprofiler_2021-06-18_14-21-59