Я использую такой код:Как прекомпилировать код SpiderMonkey для более быстрого выполнения?
JS_EvaluateScript(context, global,"go_back('blabla')", 17, "", 1, &R);
назвать go_back()
, который уже в context
. Но это очень медленно, и я думаю, потому что строка должна быть скомпилирована каждый раз.
Я пытаюсь найти способ вызова одного и того же фрагмента кода многократно быстрым способом без перекомпиляции или создания какого-либо объекта каждый раз. Но документы и источники Mozilla не организованы таким образом, есть только ссылка, и вам нужно знать каждую функцию, прежде чем вы сможете сделать любой выбор.
Значит, любые намеки? Какая была бы лучшая практика для этого?
Вы можете использовать вызовы XDR для сериализации ваших скомпилированных байт-кодов (объекта JSScript) в файл. Когда вам нужно снова выполнить байт-коды, создайте объект JSScript, прочитав из сохраненного изображения. Таким образом вы избегаете повторной компиляции. Но простой сценарий, подобный твоему, не должен занять слишком много времени для компиляции! – JavaMan