Details
-
Story
-
Resolution: Duplicate
-
Undefined
-
None
-
None
-
None
-
None
Description
The idea is that instead of decompilation which is really slow (takes the most time of a Windup run), we could gather most class metadata (name, extends, implements, imports, methods and params) using BCEL or such, and then scan the bytecode of the methods only for the constructs we are interested in - basically, methods calls.
Then the queries would only be matter of querying the graph.
The total time could be shorter than decompilation and regex matching.
Jess has done some experiments:
https://github.com/jsight/windup/tree/speed
(15:55:54) jsightler: ozizka: I think that I still have the code for our earlier experiments with that.
(15:56:18) jsightler: ozizka: https://github.com/jsight/windup/tree/speed
(16:41:38) ozizka-FN: jsightler: I see. Maybe we should write down what were the problems
(16:42:04) ozizka-FN: What's the chance of you forgetting it?
(16:42:47) jsightler: Very high... the problems were sometimes hard to quantiy, though. For example, why would it find Class.forName in most classes, but occasionally just completely miss it?
Attachments
Issue Links
- duplicates
-
WINDUP-917 Don't scan AST for rule matches if they aren't found in byte code references (ASM)
- New