JavaFx WebView Javascript изменяет потребление ресурсов процессора

У меня есть проект, который работает на веб-сайте AngularJs внутри JFX WebView. Всякий раз, когда какой-либо javascript работает в цикле, загрузка процессора увеличивается до 100% Чтобы быть более конкретным, у меня есть

 $scope.moveFloatingBanner = function () {
    try {

        var dx = $scope.activeFloatingBanner.startX - $scope.activeFloatingBanner.endX,
            dy = $scope.activeFloatingBanner.startY - $scope.activeFloatingBanner.endY,
            i = 1;

        function loop() {
            LogService.info("In lool");
            if ($scope.breakAnimation) {
                $scope.domElement.style.display = 'none';
                return;
            }
            if (i >= $scope.activeFloatingBanner.time) {
                $scope.domElement.style.display = 'none';
                $scope.changeFloatingBannerTimeout = $timeout($scope.changeFloatingBanner, $scope.activeFloatingBanner.nextDelay);
                return;
            }
            i += 1;
            $scope.domElement.style.left = ($scope.activeFloatingBanner.startX - (dx * i / $scope.activeFloatingBanner.time)).toFixed(0) + 'px';
            $scope.domElement.style.top = ($scope.activeFloatingBanner.startY - (dy * i / $scope.activeFloatingBanner.time)).toFixed(0) + 'px';
            $scope.moveBannerTimeout = $timeout(loop, 1);
        }

        loop();
    }
    catch (e) {
        LogService.error(e);
    }
}

Это код, отвечающий за перемещение баннера. Этот код не имеет проблем при запуске в Chrome или любом другом браузере. Другая часть кода отвечает за обновление баннера в пользовательском интерфейсе, это вечный тайм-аут, который каждые 10 секунд получает новый баннер с сервера. Когда оба цикла запускаются одновременно, загрузка процессора увеличивается до 140%. Процессоры, на которых они работают, довольно слабые, а интерфейс начинает отставать. При запуске на моей локальной машине он не лагает, но GPU поднимается примерно до 40-50%. При запуске без этих двух циклов загрузка процессора на слабой машине составляет около 6-7%, а моя локальная машина использует около 2% графического процессора. Я использую oracle JDK 8, версию Java "1.8.0_162-ea".

Есть идеи, что может быть причиной проблемы? Может быть, проблема с JFX? Версия JDK?

0 ответов

Другие вопросы по тегам