forked from eveem-org/panoramix
-
Notifications
You must be signed in to change notification settings - Fork 216
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
palkeo
committed
May 8, 2020
1 parent
f8a7275
commit 8859262
Showing
1 changed file
with
54 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8859262
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice !
I didn’t add an option for tuning timeouts because I’m thinking about the nopython mode from the Numba python’s package (at least for the most intensive parts which would allows for automatic parallelization while removing the ɢɪʟ) where all external variables should be removed.
8859262
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this fork I added a "--profile" option if you want to see what takes the most time. And in the contract I looked at, the main bottleneck is actually during postprocessing, and the make_whiles function.
But I personally don't mind too much about performance (and my rewrite by removing tilde actually made performance a bit worse).
8859262
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@palkeo thanks but python has the
cProfile
module.I’d personally had keep the tide requirement.
You don’t care about performance because you don’t have to decompile contracts like this one or this one in full which is requiring 100Gb of ʀᴀᴍ and several weeks.
As you solved problems I couldn’t figure, I thought you’d be more experienced than me for the Numba rewrite (though once made compatible this is the matter of adding a function decorator).
8859262
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, the "--profile" I added uses cProfile: https://github.com/palkeo/panoramix/blob/master/panoramix.py#L109
I just decompiled 100% of the functions in 0x312a90b32bbfdd064f3b223a0ce5fe1ff44b44a8 in < 20 minutes and < 8 Gb of ram with my fork. So I'm not sure what you mean?
I do decompile all contracts of mainnet (see oko.palkeo.com), so I care about these edge cases, that's why I added stricter limits/timeouts in my fork.
By the way I sent you an email.
8859262
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok. Anyway feel free to contact me if you want to talk directly outside of github: https://www.palkeo.com/en/about.html