: WARNING - support of the decompiler is now VERY LIMITED. There are no active developers. This means waiting times in the issue tracker are very long and mostly depend on community. Sorry for the inconvenience.

List of issuesList of issues

#1034 AVM2DeobfuscatorRegisters is slow
Author: developer honfika
Date created:
Type: feature
Visibility: Everybody
Assigned to:
Labels: DeobfuscationPerformance
State: new Help

AVM2DeobfuscatorRegisters is slow. Sometimes 2.5 times slower than AVM2Code.toGraphTargetItems (which calculates the loops) Is it really needed to clone the method body in a loop? AVM2Code.toGraphTargetItems: count: 3724 / total: 7341ms / min: 16us / max: 803846us / avg: 1971us Graph.graphToString: count: 3724 / total: 625ms / min: 0us / max: 82620us / avg: 167us MethodBody.toString: count: 3111 / total: 524ms / min: 0us / max: 81652us / avg: 168us AVM2DeobfuscatorSimple: count: 3724 / total: 1612ms / min: 2us / max: 151475us / avg: 432us AVM2DeobfuscatorRegisters: count: 3724 / total: 17331ms / min: 3us / max: 3742616us / avg: 4654us AVM2DeobfuscatorJumps: count: 3724 / total: 305ms / min: 0us / max: 42089us / avg: 81us MethodBody.convert: count: 3724 / total: 28530ms / min: 35us / max: 4579697us / avg: 7661us (MethodBody.convert includes all others except MethodBody.toString)
developer
I did a performance test with all files from the tracker (except 3-4 really big) Now the slowest part of the AS3 decompilation is definitely the AVM2DeobfuscatorRegisters AS1/2: ASMSource.getActions: count: 62756 / total: 1131253ms / min: 13us / max: 30003794us / avg: 18026us ActionDeobfuscator: count: 62752 / total: 312993ms / min: 1us / max: 7945848us / avg: 4987us ActionDeobfuscatorSimple: count: 62756 / total: 789267ms / min: 1us / max: 30099851us / avg: 12576us Action.actionsToSource: count: 62756 / total: 249034ms / min: 13us / max: 10636629us / avg: 3968us MethodBody.convert: count: 947464 / total: 20340548ms / min: 6us / max: 98408308us / avg: 21468us AVM2DeobfuscatorSimple: count: 947464 / total: 187510ms / min: 0us / max: 7143753us / avg: 197us AVM2DeobfuscatorRegisters: count: 947464 / total: 13814968ms / min: 1us / max: 33566208us / avg: 14580us AVM2DeobfuscatorJumps: count: 947307 / total: 61579ms / min: 0us / max: 1636974us / avg: 65us AVM2Code.toGraphTargetItems: count: 947307 / total: 5888863ms / min: 2us / max: 70696183us / avg: 6216us Graph.graphToString: count: 947187 / total: 252221ms / min: 0us / max: 30000022us / avg: 266us MethodBody.toString: count: 842489 / total: 79712ms / min: 0us / max: 4818244us / avg: 94us
 
Google Translate: Translate to Czech Translate to Slovak Translate to Russian Translate to Hungarian Translate to Swedish Translate to French Translate to German Translate to Spanish Translate to Italian
Change style: oceanic classic