-
Notifications
You must be signed in to change notification settings - Fork 372
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug-Candidate]: Multiple seemingly related performance issues #1134
Comments
Output of
|
@rappie can you test with the latest release? |
Yes. Just updated to the latest |
I've tested it with the repo in this issue. All issues remain, but the general speed is a bit higher. |
Tried out these examples with the gas-per-second PR #1279 So:
|
Not sure whether this indicates a performance problem or if this is just expected behavior. We would expect calls/sec to change when the gas-per-call changes. On the other hand we would expect gas/sec to be relatively stable, so a 2.5x variation in gas/sec between opcodes may point to a problem. |
Gas prices are probably tuned so that the gas/sec is even across each opcode in geth (ignoring storage requirements). So maybe the key question here is: how much difference between geth performance and hevm performance are we willing to tolerate? |
Describe the issue:
I'm encountering multiple seemingly related performance issues. It is a bit of a mess, but i'll try to over them one by one.
Using Foundry to compile
Command:
echidna . --contract PerformanceTest --test-mode assertion
Issue 1:
When commenting out the
fallback
functionperformance drops from 10.000 calls/s to 1000 calls/s
Issue 2:
When commenting out the mapping assignment
performance drops from 10.000 calls/s to 2000 calls/s
Both of these effects are related to a third issue (see below). Using foundry to compiling (providing
.
to Echidna) needs issues 1 or 2 to trigger issue 3.Using single file compilation
Command:
In this case issues 1&2 are not necessary to trigger issue 3.
Issue 3:
Toggling between
and
drops performance from 3500 calls/s to 1000 calls/s
I hope this makes sense and helps with debugging, it took a lot of work to figure this out. Please let me know if you have any questions or problems reproducing.
Code example to reproduce the issue:
https://github.com/rappie/echidna-debug-performance
Version:
Tested with multiple versions:
master
build usingnix-env
Using Manjaro Linux (arch based)
Relevant log output:
No response
The text was updated successfully, but these errors were encountered: