-
Notifications
You must be signed in to change notification settings - Fork 326
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
stdlib benchmarks regression: DataflowError with stack #10702
Comments
Blocked by #10706. Running Enso-only benchmarks gives nonsense values. For example:
We first need to fix the JMH stdlib benchmark invocation. |
However, the PR that most likely caused the regression is #9625. I cannot verify it at the moment, though. |
Let's make sure @GregoryTravis is aware of that. |
To me, it seems like #9625 changed the behavior of dataflow errors so that the stack traces are now attached all the time again. They used to be attached only iff JVM assertions were enabled. |
@Akirathan it actually isn't the stack trace that is the problem. As @JaroslavTulach suggested, it is the overhead of calling I reproduced the regression locally, and it was not adding stack traces at all. (Of course Stack traces definitely do add overhead, but these will only be added if the user explicitly requests them using A possible temporary fix for this would be to again require the "-ea" flag to even check the However, we might consider leaving it as-is, since this only affects error paths, and seems to only be noticeable in the case of a large number of errors. (In regular usage, we restrict the errors to 100, I believe.) |
Speed it up! |
Pavel, please take a look and speed the |
Investigating the regression in PR #11153 on latest develop (03369b9) reveals that the problem is not in ExecutionEnvironment.hasContextEnabled, but in EnsoContext.getExecutionEnvironment. To prove this theory, apply the following patch: diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/EnsoContext.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/EnsoContext.java
index 1f44b2329..bbb8d8b1a 100644
--- a/engine/runtime/src/main/java/org/enso/interpreter/runtime/EnsoContext.java
+++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/EnsoContext.java
@@ -874,8 +874,7 @@ public final class EnsoContext {
}
public ExecutionEnvironment getExecutionEnvironment() {
- ExecutionEnvironment env = language.getExecutionEnvironment();
- return env == null ? getGlobalExecutionEnvironment() : env;
+ return ExecutionEnvironment.LIVE;
}
/** Set the runtime execution environment of this context. */ and then, the score of TL;DR; The most important part to optimize is |
Pavel Marek reports a new STANDUP for today (2024-10-15): Progress: - Merging and restarting jobs on #11321 and #11217
|
I am not completely sure.
By returning a compilation constant from We can speculate with
We can go with the |
Pavel Marek reports a new STANDUP for yesterday (2024-10-16): Progress: - Managed to improve the perf a little bit.
|
Pavel Marek reports a new STANDUP for today (2024-10-17): Progress: - Context handling functionality converted to nodes.
|
There are some big regressions in
*...Map_Id_All_Errors
benchmarks. In some cases, even 500%.Screenshots:
https://enso-org.github.io/engine-benchmark-results/stdlib-benchs.html#org_enso_benchmarks_generated_Map_Error_Benchmark_Vector_ignore_Map_Id_All_Errors
The text was updated successfully, but these errors were encountered: