Jx Browser 6,23 медленнее, чем 6,21? - PullRequest
0 голосов
/ 12 марта 2019

Я новичок в JavaFx и JavaScripting

Мое приложение JavaFx (отображающее страницу HTML / JavaScript) измеряет производительность различных версий браузера JX.

Кажется, что JX bowser 6.23 медленнее, чем 6.21, когда я вручную запускаю кнопку Run .

Что я делаю не так? Что я должен сделать, чтобы улучшить производительность.

Версия (6.23) - 10 раз выполнения в мс 3879, 3637, 4483, 3583, 3565, 3656, 3748, 3834, 3895, 3799

медиана 3773,5, средняя 3807,9, максимальная 4483, минимальная 3565

Версия (6.21) - 10 раз выполнения в мс 3581, 3326, 3257, 3273, 3217, 3299, 3284, 3304, 3352, 3323

Медиана 3301,5, средняя 3321,6, максимальная 3581, минимальная 3217

Примеры кодов, как показано ниже:

Код JavaFX

sample.fxml

<?import javafx.scene.layout.AnchorPane?>
<AnchorPane fx:id="pane" fx:controller="sample.Controller"
            xmlns:fx="http://javafx.com/fxml">
</AnchorPane>

Main.java

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("Test JX Browser Performance");
        primaryStage.setScene(new Scene(root, 1800, 1000));
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}

Controller.java

public class Controller implements Initializable {

    private static final Logger LOGGER = LogManager.getLogger(Controller.class);

    @FXML
    public AnchorPane pane;

    public static String pagePath = new File("src/sample/html/testJXBrowserCode.html").getAbsolutePath();;

    public void initialize(URL location, ResourceBundle resources) {
        BrowserPreferences.setChromiumSwitches(
                "--enable-experimental-canvas-features=true",
                "--num-raster-threads=4",
                "--max-tiles-for-interest-area=512",
                "--disable-web-security",
                "--allow-file-access-from-files",
                "--headless",
                "--remote-debugging-port=9222");

        final Browser browser = new Browser();
        final BrowserView browserView = new BrowserView(browser);
        pane.getChildren().add(browserView);

        AnchorPane.setTopAnchor(browserView, 0.0);
        AnchorPane.setBottomAnchor(browserView, 0.0);
        AnchorPane.setLeftAnchor(browserView, 0.0);
        AnchorPane.setRightAnchor(browserView, 0.0);

        final String url = "file://" + pagePath;
        browser.loadURL(url);

    }
}

pom.xml (Для тестирования версия jxbrowser была переключена между 6.21 и 6.23)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>groupId</groupId>
    <artifactId>version-test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>VersionTest</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.7</version>
        </dependency>

        <dependency>
            <groupId>com.teamdev.jxbrowser</groupId>
            <artifactId>jxbrowser</artifactId>
            <version>6.21</version>
        </dependency>

        <dependency>
            <groupId>com.teamdev.jxbrowser</groupId>
            <artifactId>jxbrowser-win64</artifactId>
            <version>6.21</version>
        </dependency>

        <dependency>
            <groupId>com.teamdev.jxbrowser</groupId>
            <artifactId>jxbrowser-licence</artifactId>
            <version>6.21</version>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>15.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>com.google.code.findbugs</artifactId>
                    <groupId>jsr305</groupId>
                </exclusion>
            </exclusions>
        </dependency>

    </dependencies>
</project>

HTML / JavaScript

testJXBrowserCode.html

<!DOCTYPE html>
<html lang="en">
<head>

    <script src="lib/jquery-3.1.1.min.js"></script>

    <meta charset="UTF-8">
    <title>Test JX Browser Performance</title>
</head>
<body>
<div class="container">
    <div>
        <button onclick="run()">Run</button>
    </div>
    <div>
        <div>
            <a class="displayText">TEST</a>
        </div>
        <div>
            <a class="complete"></a>
        </div>
        <div>
            <a class="startTime"></a>
        </div>
        <div>
            <a class="endTime"></a>
        </div>
    </div>


    <script type="text/javascript">
        function run() {
            console.log("run");
            var startTime = Date.now();
            $(".startTime").text("Start time " + startTime);

            for (var i = 0; i < 99999; i++) {
                $(".displayText").text("hello " + i);
                console.log(i);
            }

            var endTime = Date.now();
            $(".endTime").text("Start time " + endTime);

            $(".complete").text("Total time taken " + (endTime - startTime));
        }
    </script>
</div>

</body>
</html>
...