QSA 1.2.0

QSA 1.2.0 and 1.1.3 were both released on friday, so I sat down and did some informal benchmarking (note the word informal, which basically indicates that the computer was playing music in the background while the tests were running.)

The benchmarks consisted of a set of generated scripts, designed to test parsing speed, as well as the execution speed, of certain basic language features (such as function calls, loops, dynamically declaring properties, comparisons, conditional blocks, dynamic type conversion and some arithmetic operations.) Since the generated scripts did nothing useful, I also threw in a small sqrt script to verify the speed of non-pointless code as well.

The timing is based on the high resolution performance counter in my work station, and I've arranged the results from longest execution time to shortest.

  • Parsing and executing a huge script: QSA 1.2.0 finished in 0.12 the time it took QSA 1.1.3 to finish.
  • Parsing and executing a big script (big := huge / 2): QSA 1.2.0 finished in 0.19 the time it took QSA 1.1.3
  • Just parsing the same big script: QSA 1.2.0 finished in 0.52 the time it took QSA 1.1.3 to finish.
  • Finding the square root of a big number: QSA 1.2.0 finished in 0.6 the time of QSA 1.1.3
  • The conclusion is: QSA 1.2.0 is faster.

    Also, the parts of the engine that were tested are essentially identical in the two versions of QSA, except that the 1.2.0 uses the Qt 4 API rather than the Qt 3 API.

    Hence, Qt 4 is faster; a port of QSA from Qt 3 to Qt 4 gave us a potential performance benefit of up to eighy-eight percent and probably more, and we didn't have to alter almost any of the logic. Everybody needs to do that dance now.

    Blog Topics: