Привет! Подскажите, пожалуйста: запускаю из котлина под OpenJDK 64-Bit Server VM GraalVM CE
21.0.0.2 JS код, но меня находят 2 проблемы:
1. Ощущение, что JS всегда в режиме интерпретации: увеличение числа инвокаций какого-нибудь конкретного метода линейно увеличивает время исполнения программы, т.е. оно не падает с момента первоначального запуска и в десятки раз превышает время, затрачиваемое на аналогичную функцию, написанную на котлине и вызываемую интеропом.
2. Возможно, следствие (1), но await на Thenable (реальный промис из JS'a не тестировал), прокидываемый из котлина, работает настолько плохо, что выгоднее синхронно блокироваться. Возможно проблема в том, что я делаю что-то вроде while (await hasInput()) doSomething(await getInput()) и переполняется microtask event queue, но все-таки в моменте Thenable'ов ведь не очень много, вряд ли такое должно происходить.
По первому пункту находил тестовую конфигурацию под мавен с флажками
-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
, но, насколько понял, при запуске в грааль-среде это не является необходимостью. Впрочем, пытался добавлять, ничего не менялось ):