Nominate our 2022 Qt Champions!

QScriptEngine: which expression is faster ?

  • Hi Everybody,

    I'm making a scriptable application, and I'm wondering which kind of expression is faster:



    QScriptValue object1 ="object1");"property1").toString();"property2").toString();"property3").toString();

    Is the second method faster (I 'save' object1 and I'm hoping that property() does not invoke the interpreter). ? I'm I right ?


  • Hi. Why don't you just measure and see what's faster?

  • Possible answer: it's the same.
    Either property() invokes the interpreter or object1 is "changed" everytime the underlying script changes it.

    Because if I do:

    // let's assume object1 is an array
    QScriptValue object1="object1");

    Then I use Javascript to alter the contents of object1 (for example using evaluate())

    and I do:

    qDebug() << object1.toVariant();

    The object1 will contains the latest changes, even if it has been changes outside C++.

    This makes me believe that QScriptValue objects are tied to the underlying JS objects. Any change in the JS will immediately be seen in C++.

Log in to reply