Closed oziphantom closed 6 years ago
The expressions are executed by JavaScript, this allows complex expressions like complex mathematical calculations to be used, but this is unfortunately quite slow. I've been toying with the idea of using a simpler faster expression evaluator and if that fails then falling back to the JavaScript executor.
Ah, so the Label+1, thing *8+2 is done via JS. Does that mean it can use any valid JS, like the math.cos for example?
Is the $,% and label looks ups done in Java? What bit to I remove to get the just Java speed ones. I will make a few "fast" call versions to test and see what happens to the time.
I'm now up to 45 Scenarios (45 passed) 532 Steps (532 passed) 2m45.541s So just making the most common systems use "fast" calls should give me a noticeable boost to test the theory.
I put in a rough, check to see if the fast system can handle it and call the fast system as a test
45 Scenarios (45 passed) 532 Steps (532 passed) 0m18.742s
The expressions can use any valid JavaScript including math.cos etc. Cheers for the timing results. I will definitely look for alternatives. Unless you want to commit your test code to a branch for collaboration?
Published.
I know this is Java and it is slow but this is getting beyond the Java is slow joke. 40 Scenarios (40 passed) 480 Steps (480 passed) 1m43.582s
Most of the time seems to be in the regexs. maybe there is a way to tweak them to make them faster. Or since the Given, Then etc are just calling straight Java code, is there a way to compile the features into actual java files, so once we are happy with a feature and its test, we convert them to java for speed during regression?