martinpiper / BDD6502

Behaviour Driven Development with 6502 code
27 stars 2 forks source link

Speed #7

Closed oziphantom closed 6 years ago

oziphantom commented 8 years ago

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?

martinpiper commented 8 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.

oziphantom commented 8 years ago

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.

oziphantom commented 8 years ago

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

martinpiper commented 8 years ago

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?

oziphantom commented 8 years ago

Published.