-
Notifications
You must be signed in to change notification settings - Fork 19
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
First algorithm fails on E5-26xx #78
Comments
That sounds pretty strange. Maybe a place to start would be some more details:
My guess is you are running into the time limits but you mentioned you tinkered with the time limits already. The design of Hunspell has, in my opinion, an awkward timing mechanism to prevent overuse of CPU resources. You might have tried this already, but increasing the MinTimer to a larger value and increasing the TimeLimit values might help ensure you get more consistent results during testing. See: WeCantSpell.Hunspell/WeCantSpell.Hunspell/QueryOptions.cs Lines 62 to 85 in 17e7024
|
I mean that it fails to use the right algorithm to give an answer.
Different result, seems to be using the second algorithm.
Yes, our tests are made with single and multiple words (a phrase), but always the same, so to know the expected result. We have played around with the TimeLimit value, all the way from 1ms (to force second algorithm) to 3000ms (12 times the base time limit to be sure it's the first one solving the query). That's how we realized that this issue happened in some machines and in those only.
To be precise, in the multi-word input I run a Check on each word first and Suggest only in those not present in the dictionary, but that part working fine I haven't checked the inner workings of Check. does it use the same timed algorithm-switching mechanism?
Seems to be consistent in those machines. Will make a deeper check though.
As I said, I've played quite a bit with the different time configurations available, changed nothing. |
It sounds like you are saying there is a timing issue and something in the first part of some algorithm is going too slow on some machines which prevents the following part of Suggest from returning results. If I got that right, this is starting to make some sense to me. To debug this, you could create a test case for your specific wods and dictionaries to see if you can find specifically which code in the codebase is returning results and which code is not being executed. Setting breakpoints on or around
|
Let me explain a bit better. |
@ADD-eNavarro , I made a new release that might fix your issue. Give it a try and let me know. I was previously using Environment.TickCount which wasn't really a great choice. This new release changes that and may behave differently. https://github.com/aarondandy/WeCantSpell.Hunspell/releases/tag/5.0.0 |
This version also has a fix for a timer issue: https://www.nuget.org/packages/WeCantSpell.Hunspell/5.0.1 |
Cool, thanks for the good work. |
We are using your tool in my enterprise, and automatically testing in a pool of computers.
We've found that the first search algorithm always fails in some computers, making our tests flaky. At first, we thought it may be related to work load on those machines, but tinkering with limit time parameters didn't change a thing. In the end, we realized it fails always in the same machines, and works fine in the rest.
The only point in common we've found on those machines is that them all have Intel processors from the E5-26xx family (2640, 2650, 2680).
Can you shed some light about this issue, or share a thought?
Thanks.
The text was updated successfully, but these errors were encountered: