-
Notifications
You must be signed in to change notification settings - Fork 69
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
Eppy suffers from performance issues for larger IDF models #303
Comments
ha ! I was not aware of that. Let us know what you discover |
Yes, I'm running yappi to figure out which function is taking a lot of time. Then I use line_profile to profile line by line. I found out that "only_legalcharrs" is very heavy, especially since it can be called millions of times. Lines 17 to 20 in 98e5858
Possible solutionA simple fix is to encode and decode the string:
It is much faster (~7x faster). This translated in a 30% speed increase when parsing a large IDF file.
The result does keep characters the
Let's see if the CI is happy... |
Apparently CI is unhappy I am making some changes in response to #287 that will fix some of that unhappiness. I'll merge those changes in a couple of days. |
Another lag is created by these two decorators: eppy/eppy/EPlusInterfaceFunctions/parse_idd.py Lines 143 to 379 in 98e5858
|
I suspected I used
removing it is an option regarding |
Do you have a sample large file I can play with. I also want to test it with eppy3000. So far |
I updated branch |
Yes I need to check that out! Happy to see you are moving to epjson |
latest changes on #304 seem to pass all tests. I implemented a regex instead of encode/decode. It is not as fast, but at least follows the same behavior as the original |
#304 also merges the 2 decorators inside the |
I have found out that loading some of the heftier models can take a while to load.
I am investigating possible fixes
The text was updated successfully, but these errors were encountered: