-
Notifications
You must be signed in to change notification settings - Fork 263
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
Massive delay before test actually starts when using Modelsim #735
Comments
What is your ModelSim version? What happens if you take one of the provided examples and run that? For example, https://github.com/VUnit/vunit/blob/master/examples/vhdl/user_guide/run.py. Still same delay? It takes about 3 seconds to run all tests for me when running
|
I am using ModelSim Intel FPGA Starter Edition 2020.3. The delay seems to be proportional to the total code size and/or the number of tests/configs that the testbench has. I will try to run your example and check the delay there. |
I experience pretty similar behaviour. I don't know exactly when it started, but currently a clean simulation run takes several minutes to start. My ModelSim version is: Calling the runner script with cProfile shows, that the calls to
I have attached the whole profiling report for the |
Further tests with different VUnit versions showed, that version 4.5.0 introduced a massive slowdown.
Tests with Basically reverting this change in v4.5.0 brings the delay down to previous values. + TokenType = collections.namedtuple("Token", ["kind", "value", "location"])
def Token(kind, value="", location=None): # pylint: disable=invalid-name
- return collections.namedtuple("Token", ["kind", "value", "location"])(
- kind, value, location
- )
+ return TokenType(kind, value, location) |
@skaupper, does performance improve if you move the |
When moving it back into the function the time increases again to about 2min. When using the most simplistic case of 400k calls to import collections
for i in range(400000):
token = collections.namedtuple("Token", ["kind", "value", "location"])
In order to resolve this issue, multiple calls to |
Thanks for the deep dive, @skaupper ! |
With the change proposed, we go down from 3min 55s to 50s. |
@felixn Yes, this can be reverted. It was done to suppress some new warnings from pylint. If there is no other way we can always create an exception for that warning. Will you do a PR? |
@skaupper, my bad. I misinterpreted the |
Can you all please confirm that #745 fixes this issue? Moreover, do you need that we release a new version including the fix or are you ok with consuming |
@umarcor Maybe this deserves a patch release 4.5.1? |
I think we can release 4.6.0. There are some changes since may (v4.5.0...master), including "vunit/ui/common: make glob search recursive by default". However, I'd like to have #743 (and the follow-up) merged first, so that CI is green. That should be just syntax changes. Would you mind reviewing and merging? |
@umarcor It's still not complete. Right? |
That PR is partial, but complete. I.e., it does not solve all the warnings, but the ones that are in the PR are correct (I think) and ready to merge. Then, I have branch https://github.com/dbhi/vunit/tree/fix-lint-fstrings, which includes all the remaining fixes related to f-strings. There are three other new warnings (related to Precisely, More precisely, #743 includes some fixes to string formatting in |
Hello,
I am using VUnit with Modelsim Intel free edition. Ever since I started using VUnit, I experience a massive delay (several minutes) whenever I launch a test, before the test is actually run. What is the reason for this massive wait time? When I do not use VUnit, the test starts immediately, so I am sure this has nothing to do with the Modelsim free edition code size limitations.
The text was updated successfully, but these errors were encountered: