рд╣реЗрдЬрд╣реЛрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реЗрдЬрд╣реЛрдЧ рдХреЛ рдкрд╛рд░ рдХрд░рдирд╛: рдУрдкрдирдЬреЗрдбрдХреЗ -11 + рдЧреНрд░реЗрд╡рд╛рд▓рд╡реАрдПрдо

рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! рдЬрд╛рд╡рд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдУрд░реЗрдХрд▓ рдХреА рдиреАрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ, рдУрд░реЗрдХрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рдУрдкрдирдЬреЗрдбрдХреЗ рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХрд╛ рдореБрджреНрджрд╛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рддреАрд╡реНрд░ рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред OracleLabs рдореЗрдВ рдУрдбреИрдВрдХреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЧреНрд░реЗрд╡рд╛рд▓рдо рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИ, рд╕рд╛рде рд╣реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд░реВрдмреА, рдкрд╛рдпрдерди, рд╕реА, ++, рд╕реНрдХрд╛рд▓рд╛, рдХреЛрдЯрд▓реАрди рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд░рдирд┐рдВрдЧ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд░рдирдЯрд╛рдЗрдо рд╣реИред рдЖрд░, рдХреНрд▓реЛрдЬрд░ред рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА, рд╕рд╣реА? рд▓реЗрдХрд┐рди рдкреЙрд▓реАрдЧреНрд▓реЙрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдардВрдбрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рдо OpenJDK 11 рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдирд╡реАрдирддрдо рдЧреНрд░реИрдм рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛, рдХрд╛рдлреА ...

рдкрд╣рд▓реЗ рд╢рдмреНрдж рдерд╛


рдЧреНрд░реЗрд╡рд╛рд▓рдо рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкрд░рд┐рдЪрд┐рдд рдХреА рдХрд╣рд╛рдиреА 2017 рдореЗрдВ рдЬреЛрдХрд░ рдкрд░ рд╢реБрд░реВ рд╣реБрдИред рд╡рд╣рд╛рдВ рдХреНрд░рд┐рд╕ рд╕реАрдЯрди рдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрдВрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХреА рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░рд┐рд▓ рдбрд┐рд▓реАрд╡рд░реА рд╕реЗ рджреЗрд╢реА-рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдУрдЯреА рд╕рдВрдХрд▓рди рдХрд╛ рдЬрд╛рджреВ рджрд┐рдЦрд╛рдпрд╛ (рдпрд╣ рдПрдХ рдордЬрд╛рдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ рдореВрд▓ рдмрд╛рдЗрдирд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ)ред

рдЙрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд╛рд▓рддреВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджрд┐рдпрд╛, рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдЕрд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрд╕рд╛рдЦреА рдФрд░ рд░реЗрдХ рд▓рдЧрд╛рдП (рдпрд╣ рдареАрдХ рдирд╣реАрдВ рд╣реИ!) рдФрд░ рдЕрдВрдд рдореЗрдВ рдЖрдИрдУ рдХреЗ рд╕рд╛рде рдЕрдирд╕реБрд▓рдЭреЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ (рдХреБрдЫ) рд╡рд╣рд╛рдБ рдпрд╣ рдПрдХ рдЬрд╝реВрдХреАрд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдерд╛, рдЕрдм рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХреНрдпрд╛)ред рджреЗрд╢реА рдЫрд╡рд┐ рдкрд░ рдереВрдХ: --(

рд╡рд░реНрд╖ 2018, рдУрдПрд▓рдПрд▓ рд╢реЗрд▓рд╛рд╡ рд╕реЗ рдПрдУрдЯреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реБрдкрд░-рд╡рд┐рд╕реНрддреГрдд рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╕рднреА рдПрдХ рд╣реА рдЬреЛрдХрд░ рдФрд░ рдПрдХ рд╣реА рдХрдмреНрд░рдЧрд╛рд╣ред

рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐рдпреЛрдВ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдбрд┐рд╕реНрдХ рдкрд░ рдПрдХ рдкрд╛рд▓рддреВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднреА рд╣реИ ... рдпрд╣ рдЯрд░реНрдорд┐рдирд▓ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ, рдПрдХ рддрд╛рдЬрд╝рд╛ рдЧреНрд░рд┐рд▓ рд░рд┐рд▓реАрдЬрд╝ рдЙрдореНрдореАрджрд╡рд╛рд░ рдФрд░ рд▓рдбрд╝рд╛рдИ рдореЗрдВ рдЭреВрд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ! рд╣рдо рдЬреАрдЯ рдХреЛ рдЯрдЪ рдХрд░реЗрдВрдЧреЗред

рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛


рдПрдХ рдЫреЛрдЯреА рд╕реА JIT рдХреЛ рдЫреВрдирд╛ рдФрд░ рдорд╛рд░рдирд╛ (рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп рд╕рдВрд╕реНрдХрд░рдг CE-1.0.0-rc14 рд╣реИ ) рд╣рдо https://graalvm.org рд╕рд╛рдЗрдЯ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ - рд╣рдорд╛рд░рд╛ рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдгред

рдХреНрдпрд╛ рдЬрд╛рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб ) рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ? рдпрд╣ рд╕рд╣реА рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд╣реИ рдХрд┐ javac рдкрд░ рдЦрд╛рдирд╛ рдмрдирд╛рдирд╛ рд╕реАрдЦрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛рдХ рд╣рдо рдЦрд╛рдирд╛ рдкрдХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзреНрдпрдпрди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдорд╛рд╡реЗрди рд╕реНрдЯреАрд╡рд░реНрд╕ рдЬрд╛рд╡рд╛рдХ рдХрд░рддреЗ рд╣реИрдВред

рддреЛ рдорд┐рд▓рддреЗ рд╣реИрдВ pom.xml:

pom.xml
<?xml version="1.0"?> <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <!--<packaging>jar</packaging>--> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>my-app</name> <url>http://maven.apache.org</url> <properties> <java.version>11</java.version> <graalvm.version>1.0.0-rc14</graalvm.version> </properties> <profiles> <profile> <id>jdk11</id> <activation> <jdk>11</jdk> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy</id> <phase>process-test-classes</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.mycompany.app.App</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> </profile> </profiles> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <release>${java.version}</release> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.graalvm.compiler</groupId> <artifactId>compiler</artifactId> <version>${graalvm.version}</version> </dependency> <dependency> <groupId>org.graalvm.truffle</groupId> <artifactId>truffle-api</artifactId> <version>${graalvm.version}</version> </dependency> <dependency> <groupId>org.graalvm.sdk</groupId> <artifactId>graal-sdk</artifactId> <version>${graalvm.version}</version> </dependency> <dependency> <groupId>org.graalvm.js</groupId> <artifactId>js</artifactId> <version>${graalvm.version}</version> </dependency> <dependency> <groupId>org.graalvm.js</groupId> <artifactId>js-scriptengine</artifactId> <version>${graalvm.version}</version> </dependency> </dependencies> </project> 


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:



рдХрдХреНрд╖рд╛ рдХреЛрдб com.mycompany.app.App (graalvm.org рд╕реЗ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдЙрджрд╛рд╣рд░рдг):

App.java
  package com.mycompany.app; public class App { static final int ITERATIONS = Math.max(Integer.getInteger("iterations", 1), 1); public static void main(String[] args) { String sentence = String.join(" ", args); for (int iter = 0; iter < ITERATIONS; iter++) { if (ITERATIONS != 1) System.out.println("-- iteration " + (iter + 1) + " --"); long total = 0, start = System.currentTimeMillis(), last = start; for (int i = 1; i < 10_000_000; i++) { total += sentence.chars().filter(Character::isUpperCase).count(); if (i % 1_000_000 == 0) { long now = System.currentTimeMillis(); System.out.printf("%d (%d ms)%n", i / 1_000_000, now - last); last = now; } } System.out.printf("total: %d (%d ms)%n", total, System.currentTimeMillis() - start); } } } 


рдХреЛрдб рдореЙрдбреНрдпреВрд▓-info.java :

module-info.java
  module com.mycompany.app {} 


рд╣рдореНрдо, рдЦрд╛рд▓реА ... рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдЦрд╛рд▓реА рд╣реИ рдХрд┐ рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ рдХрд╕реНрдЯрдо рдЬрд╛рд╡рд╛ (рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдХрд╕реНрдЯрдо рдЬрд╛рд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ) рдЕрдШреЛрд╖рд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╢рдкрде рд▓реЗрдВрдЧреЗ рдХрд┐ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдкрд╣рд▓рд╛ рдкреИрдирдХреЗрдХ ...


рдвреЗрд▓реЗрджрд╛рд░ рдирд╣реАрдВред рдЖрдЗрдП рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд░рдЦрдирд╛:

 mvn clean package 


рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:

 $JAVA_HOME/bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler -Diterations=10 -jar target/my-app-1.0-SNAPSHOT.jar In 2017 I would like to run ALL languages in one VM. 

рдпрд╣рд╛рдВ рджреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИрдВ: рдЬреЗрд╡реАрдПрдорд╕реАрдЖрдИ рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЪреАрдЬ рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 9 рдХреЗ рдмрд╛рдж рд╕реЗ рджрд┐рдЦрд╛рдИ рджреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд╖рдо рдХрд░реЗрдВ -
      -XX: + UnlockEperimentalVMOptions 
  • рдмрд╣реБрдд рд╣реА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ (рдиреМ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдЧреНрд░рд┐рд▓ рдУрдкрдирдбреЗрдХ рдореЗрдВ рд╣реИ, рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА) - -XX: + UseJVMCICompiler

рд▓реЙрдиреНрдЪ рдкрд░рд┐рдгрд╛рдо
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 1 - 1 (1466 рдПрдордПрд╕)
2 (461 рдПрдордПрд╕)
3 (463 рдПрдордПрд╕)
4 (138 рдПрдордПрд╕)
5 (151 рдПрдордПрд╕)
6 (159 рдПрдордПрд╕)
7 (266 рдПрдордПрд╕)
8 (128 рдПрдордПрд╕)
9 (144 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (3481 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 2 - 1 (233 рдПрдордПрд╕)
2 (169 рдПрдордПрд╕)
3 (121 рдПрдордПрд╕)
4 (205 рдПрдордПрд╕)
5 (170 рдПрдордПрд╕)
6 (152 рдПрдордПрд╕)
7 (227 рдПрдордПрд╕)
8 (158 рдПрдордПрд╕)
9 (108 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1644 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 3 - 1 (98 рдПрдордПрд╕)
2 (102 рдПрдордПрд╕)
3 (98 рдПрдордПрд╕)
4 (102 рдПрдордПрд╕)
5 (95 рдПрдордПрд╕)
6 (96 рдПрдордПрд╕)
7 (101 рдПрдордПрд╕)
8 (95 рдПрдордПрд╕)
9 (97 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (990 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 4 - 1 (109 рдПрдордПрд╕)
2 (114 рдПрдордПрд╕)
3 (97 рдПрдордПрд╕)
4 (98 рдПрдордПрд╕)
5 (100 рдПрдордПрд╕)
6 (103 рдПрдордПрд╕)
7 (125 рдПрдордПрд╕)
8 (108 рдПрдордПрд╕)
9 (100 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1056 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 5 - 1 (98 рдПрдордПрд╕)
2 (100 рдПрдордПрд╕)
3 (105 рдПрдордПрд╕)
4 (97 рдПрдордПрд╕)
5 (95 рдПрдордПрд╕)
6 (99 рдПрдордПрд╕)
7 (95 рдПрдордПрд╕)
8 (123 рдПрдордПрд╕)
9 (98 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1010 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 6 тАЛтАЛ- 1 (99 рдПрдордПрд╕)
2 (95 рдПрдордПрд╕)
3 (102 рдПрдордПрд╕)
4 (99 рдПрдордПрд╕)
5 (96 рдПрдордПрд╕)
6 (100 рдПрдордПрд╕)
7 (99 рдПрдордПрд╕)
8 (99 рдПрдордПрд╕)
9 (104 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (993 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 7 - 1 (100 рдПрдордПрд╕)
2 (104 рдПрдордПрд╕)
3 (95 рдПрдордПрд╕)
4 (96 рдПрдордПрд╕)
5 (97 рдПрдордПрд╕)
6 (95 рдПрдордПрд╕)
7 (94 рдПрдордПрд╕)
8 (108 рдПрдордПрд╕)
9 (108 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1000 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 8 - 1 (100 рдПрдордПрд╕)
2 (106 рдПрдордПрд╕)
3 (99 рдПрдордПрд╕)
4 (95 рдПрдордПрд╕)
5 (97 рдПрдордПрд╕)
6 (97 рдПрдордПрд╕)
7 (101 рдПрдордПрд╕)
8 (99 рдПрдордПрд╕)
9 (101 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1012 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 9 - 1 (105 рдПрдордПрд╕)
2 (97 рдПрдордПрд╕)
3 (98 рдПрдордПрд╕)
4 (96 рдПрдордПрд╕)
5 (99 рдПрдордПрд╕)
6 (96 рдПрдордПрд╕)
7 (94 рдПрдордПрд╕)
8 (98 рдПрдордПрд╕)
9 (105 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (993 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 10 - 1 (107 рдПрдордПрд╕)
2 (98 рдПрдордПрд╕)
3 (99 рдПрдордПрд╕)
4 (100 рдПрдордПрд╕)
5 (97 рдПрдордПрд╕)
6 (101 рдПрдордПрд╕)
7 (98 рдПрдордПрд╕)
8 (103 рдПрдордПрд╕)
9 (105 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1006 рдПрдордПрд╕)

рд╣рдо рдпрд╣рд╛рдБ рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ? рдФрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓рд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕рдмрд╕реЗ рд▓рдВрдмрд╛ (3.5 рд╕реЗрдХрдВрдб) рд╣реИ, рдпрд╣ рдЬреЗрдЖрдИрдЯреА рдЧрд░реНрдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ (рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░) рд╕реБрдЪрд╛рд░реВ рд╣реЛрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдЬрд╛рд╡рд╛ рдХреЛ рдХрдмреНрд░ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рджреЗрдВ? рдЬрд▓реНрджреА рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛:

 java -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler -Diterations=10 --module-path=target/lib --upgrade-module-path=target/lib/compiler-1.0.0-rc14.jar -jar target/my-app-1.0-SNAPSHOT.jar In 2017 I would like to run ALL languages in one VM. 

рддрд╛рдЬрд╛ рдЧреНрд░рд┐рд▓ рд▓реЙрдиреНрдЪ рдХрд╛ рдкрд░рд┐рдгрд╛рдо
- рдкреБрдирд░рд╛рд╡реГрддрд┐ 1 - 1 (1789 рдПрдордПрд╕)
2 (547 рдПрдордПрд╕)
3 (313 рдПрдордПрд╕)
4 (87 рдПрдордПрд╕)
5 (88 рдПрдордПрд╕)
6 (87 рдПрдордПрд╕)
7 (83 рдПрдордПрд╕)
8 (92 рдПрдордПрд╕)
9 (87 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (3259 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 2 - 1 (241 рдПрдордПрд╕)
2 (161 рдПрдордПрд╕)
3 (152 рдПрдордПрд╕)
4 (195 рдПрдордПрд╕)
5 (136 рдПрдордПрд╕)
6 (129 рдПрдордПрд╕)
7 (154 рдПрдордПрд╕)
8 (176 рдПрдордПрд╕)
9 (109 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1553 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 3 - 1 (109 рдПрдордПрд╕)
2 (103 рдПрдордПрд╕)
3 (113 рдПрдордПрд╕)
4 (172 рдПрдордПрд╕)
5 (141 рдПрдордПрд╕)
6 (148 рдПрдордПрд╕)
7 (111 рдПрдордПрд╕)
8 (102 рдПрдордПрд╕)
9 (101 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1211 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 4 - 1 (96 рдПрдордПрд╕)
2 (96 рдПрдордПрд╕)
3 (104 рдПрдордПрд╕)
4 (98 рдПрдордПрд╕)
5 (96 рдПрдордПрд╕)
6 (97 рдПрдордПрд╕)
7 (98 рдПрдордПрд╕)
8 (96 рдПрдордПрд╕)
9 (95 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (972 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 5 - 1 (97 рдПрдордПрд╕)
2 (93 рдПрдордПрд╕)
3 (99 рдПрдордПрд╕)
4 (97 рдПрдордПрд╕)
5 (97 рдПрдордПрд╕)
6 (97 рдПрдордПрд╕)
7 (95 рдПрдордПрд╕)
8 (98 рдПрдордПрд╕)
9 (94 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (965 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 6 тАЛтАЛ- 1 (96 рдПрдордПрд╕)
2 (95 рдПрдордПрд╕)
3 (96 рдПрдордПрд╕)
4 (99 рдПрдордПрд╕)
5 (102 рдПрдордПрд╕)
6 (94 рдПрдордПрд╕)
7 (99 рдПрдордПрд╕)
8 (115 рдПрдордПрд╕)
9 (109 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1001 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 7 - 1 (98 рдПрдордПрд╕)
2 (96 рдПрдордПрд╕)
3 (99 рдПрдордПрд╕)
4 (98 рдПрдордПрд╕)
5 (118 рдПрдордПрд╕)
6 (98 рдПрдордПрд╕)
7 (95 рдПрдордПрд╕)
8 (99 рдПрдордПрд╕)
9 (116 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1017 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 8 - 1 (95 рдПрдордПрд╕)
2 (99 рдПрдордПрд╕)
3 (99 рдПрдордПрд╕)
4 (106 рдПрдордПрд╕)
5 (101 рдПрдордПрд╕)
6 (101 рдПрдордПрд╕)
7 (93 рдПрдордПрд╕)
8 (97 рдПрдордПрд╕)
9 (108 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (993 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 9 - 1 (102 рдПрдордПрд╕)
2 (95 рдПрдордПрд╕)
3 (97 рдПрдордПрд╕)
4 (125 рдПрдордПрд╕)
5 (94 рдПрдордПрд╕)
6 (101 рдПрдордПрд╕)
7 (100 рдПрдордПрд╕)
8 (95 рдПрдордПрд╕)
9 (96 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1008 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 10 - 1 (97 рдПрдордПрд╕)
2 (97 рдПрдордПрд╕)
3 (99 рдПрдордПрд╕)
4 (112 рдПрдордПрд╕)
5 (102 рдПрдордПрд╕)
6 (96 рдПрдордПрд╕)
7 (96 рдПрдордПрд╕)
8 (98 рдПрдордПрд╕)
9 (96 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (988 рдПрдордПрд╕)

рдкрд░рд┐рдгрд╛рдо, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рднреВрд▓ рдЧрдпрд╛ред рдареАрдХ рд╣реИ, рд╣рдордиреЗ рдирдП рдлрдВрд╕реЗ рд╣реБрдП рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред рд╣рдо рдХрд░реЗрдВрдЧреЗ:

 java -Diterations=10 -jar target/my-app-1.0-SNAPSHOT.jar In 2017 I would like to run ALL languages in one VM. 

рдмрд┐рдирд╛ рдирдП JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд░рд┐рдЬрд▓реНрдЯ
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 1 - 1 (372 рдПрдордПрд╕)
2 (271 рдПрдордПрд╕)
3 (337 рдПрдордПрд╕)
4 (391 рдПрдордПрд╕)
5 (328 рдПрдордПрд╕)
6 (273 рдПрдордПрд╕)
7 (239 рдПрдордПрд╕)
8 (271 рдПрдордПрд╕)
9 (250 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2978 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 2 - 1 (242 рдПрдордПрд╕)
2 (253 рдПрдордПрд╕)
3 (253 рдПрдордПрд╕)
4 (240 рдПрдордПрд╕)
5 (245 рдПрдордПрд╕)
6 (275 рдПрдордПрд╕)
7 (273 рдПрдордПрд╕)
8 (263 рдПрдордПрд╕)
9 (234 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2533 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 3 - 1 (237 рдПрдордПрд╕)
2 (235 рдПрдордПрд╕)
3 (234 рдПрдордПрд╕)
4 (246 рдПрдордПрд╕)
5 (242 рдПрдордПрд╕)
6 (238 рдПрдордПрд╕)
7 (244 рдПрдордПрд╕)
8 (243 рдПрдордПрд╕)
9 (253 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2414 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 4 - 1 (244 рдПрдордПрд╕)
2 (249 рдПрдордПрд╕)
3 (245 рдПрдордПрд╕)
4 (243 рдПрдордПрд╕)
5 (232 рдПрдордПрд╕)
6 (256 рдПрдордПрд╕)
7 (321 рдПрдордПрд╕)
8 (303 рдПрдордПрд╕)
9 (249 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2599 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 5 - 1 (246 рдПрдордПрд╕)
2 (242 рдПрдордПрд╕)
3 (248 рдПрдордПрд╕)
4 (256 рдПрдордПрд╕)
5 (280 рдПрдордПрд╕)
6 (233 рдПрдордПрд╕)
7 (235 рдПрдордПрд╕)
8 (266 рдПрдордПрд╕)
9 (246 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2511 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 6 тАЛтАЛ- 1 (292 рдПрдордПрд╕)
2 (368 рдПрдордПрд╕)
3 (339 рдПрдордПрд╕)
4 (251 рдПрдордПрд╕)
5 (267 рдПрдордПрд╕)
6 (259 рдПрдордПрд╕)
7 (289 рдПрдордПрд╕)
8 (262 рдПрдордПрд╕)
9 (357 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (3058 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 7 - 1 (284 рдПрдордПрд╕)
2 (258 рдПрдордПрд╕)
3 (248 рдПрдордПрд╕)
4 (247 рдПрдордПрд╕)
5 (266 рдПрдордПрд╕)
6 (247 рдПрдордПрд╕)
7 (242 рдПрдордПрд╕)
8 (314 рдПрдордПрд╕)
9 (265 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2656 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 8 - 1 (239 рдПрдордПрд╕)
2 (238 рдПрдордПрд╕)
3 (257 рдПрдордПрд╕)
4 (282 рдПрдордПрд╕)
5 (244 рдПрдордПрд╕)
6 (261 рдПрдордПрд╕)
7 (253 рдПрдордПрд╕)
8 (295 рдПрдордПрд╕)
9 (256 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2575 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 9 - 1 (273 рдПрдордПрд╕)
2 (243 рдПрдордПрд╕)
3 (239 рдПрдордПрд╕)
4 (240 рдПрдордПрд╕)
5 (250 рдПрдордПрд╕)
6 (285 рдПрдордПрд╕)
7 (266 рдПрдордПрд╕)
8 (285 рдПрдордПрд╕)
9 (264 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2617 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 10 - 1 (245 рдПрдордПрд╕)
2 (264 рдПрдордПрд╕)
3 (258 рдПрдордПрд╕)
4 (253 рдПрдордПрд╕)
5 (239 рдПрдордПрд╕)
6 (260 рдПрдордПрд╕)
7 (251 рдПрдордПрд╕)
8 (250 рдПрдордПрд╕)
9 (256 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2538 рдПрдордПрд╕)

рдкрд░рд┐рдгрд╛рдо рдЕрд▓рдЧ рдФрд░ рд╕рднреНрдп рд╣реИред

C2 рдХреЛрдб рдХреЗ рдЧрд░реНрдо рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдХреЛрдИ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдПрдХ рд╣реА рд╕рдордп рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ред

рдЧреНрд░реЗрдЧрд▓ рдХреЛрдб рдХреЗ рдЧрд░реНрдо рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИред

рддреЛ рдХреНрдпрд╛?


рдпрд╣ рд╢рд╛рдпрдж рдореБрдЦреНрдп рдкреНрд░рд╢реНрди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдФрд░ рджреВрд╕рд░реЛрдВ (рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ) рд╕реЗ рдкреВрдЫрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬрдм рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛, рдПрдХ рдирдпрд╛ рдЙрдкрдХрд░рдг, рдПрдХ рдирдИ рдЖрднрд╛рд╕реА рдорд╢реАрди, рдПрдХ рдирдпрд╛ JIT рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ...

рдореЗрд░реА рдХрд╣рд╛рдиреА, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЬреЛрдХрд░ 2017 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдИ рдереА, рддрдм рдПрдУрдЯреА рдХреЛ рдорд╛рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЧрдП рдереЗ, рдФрд░ рдЕрдм рдореИрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдЬреЗрдЖрдИрдЯреА рдХреЗ рдкреНрд░рд╕рдиреНрдирддрд╛ рдХрд╛ рд╕реНрд╡рд╛рдж рд▓реЗрддрд╛ рд╣реВрдВред

рдбрд┐рд╕реНрдХ рдкрд░ рдПрдХ рдкрд╛рд▓рддреВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрдВрдЬрди рд╣реИ, рдЬрд╣рд╛рдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпреВрдЖрдИ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рддреИрдпрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдЬреЗрдПрд╕ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЬреЗрд╡реАрдПрдо рдкрд░ рдЪрд▓реЗрдЧреАред

рдЬрд╛рд╡рд╛ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╡реЗ рдиреИрд╢реЙрд░реНрди рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЧреНрд░реЗрд╡рд╛рд▓рдо рдзреАрд░реЗ-рдзреАрд░реЗ рд░рд┐рд▓реАрдЬ рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪ рд░рд╣рд╛ рд╣реИ ...

рдЦреИрд░, рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдпрд╣ рд╣реИ:

  1. рд╣рдо рдЬреЗрдПрд╕ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рдирдЯрд╛рдЗрдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдФрд░ рди рдХреЗрд╡рд▓)
  2. рд╕реНрдкреАрдб рдЬреАрдЯ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
  3. рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ 8-ke (рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХреЗ) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд▓рддреВ-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд▓реЙрдиреНрдЪ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджреЗ
      --module-рдкрде 
    рдФрд░
      --upgrade рдореЙрдбреНрдпреВрд▓-рдкрде 
    рд▓реЗрдХрд┐рди рдПрдХ рддрд╛рдЬрд╛ рдЧреНрд░рд┐рд▓ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╕рд╛рде)

Jlink


рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╢реНрди рдХреЗ рдЙрддреНрддрд░ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓реЗ рджреЛ рдмрд┐рдВрджреБ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ, рдЖрдЗрдП рдмрд╛рдж рд╡рд╛рд▓реЗ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕-рдкреНрд░рд╡реЗрд╢-рджреЗрд╡рддрд╛ рдЖрд▓рд╕реА рд╣реИрдВ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХрд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдореИрдВ рднреА рдРрд╕рд╛ рд╣реА рд╣реВрдВ), рд╡реЗ рд╕рдм рдХреБрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдмрдВрдбрд▓ рдореЗрдВ рдкреИрдХ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмрд┐рдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЦреИрд░, рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЪрд▓реЛ рдЗрд╕реЗ рд╣рд▓ рдХрд░реЗрдВред

рдЬрд╛рд╡рд╛ 9+ рдХреА рджреБрдирд┐рдпрд╛ рд╕реЗ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдирдпрд╛ рдЙрдкрдХрд░рдг рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рдВрдХ ред рд╣рдо рдПрдХ рдмрдВрдбрд▓ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдкреИрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

 jlink --module-path target/classes:target/lib:$JAVA_HOME/jmods --add-modules com.mycompany.app --launcher app=com.mycompany.app/com.mycompany.app.App --compress 2 --no-header-files --no-man-pages --strip-debug --output test 

рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд┐рддрдиреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рд╣рдо рдореБрдЦреНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:
  •   -рдореЙрдбрд▓-рдкрде рд▓рдХреНрд╖реНрдп / рдХрдХреНрд╖рд╛рдПрдВ: рд▓рдХреНрд╖реНрдп / рдкрд░рд┐рд╡рд╛рдж: $ JAVA_HOME / jmods 
  •   --add- рдореЙрдбреНрдпреВрд▓ com.mycompany.app 
  •   --launcher рдРрдк = com.mycompany.app / com.mycompany.app.App 
  •   -рдкреНрд░рддреНрдпрдХреНрд╖ рдкрд░реАрдХреНрд╖рдг 

рдЖрдк Google рдХреЗ рдЪрд╛рдЪрд╛ рд╕реЗ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрди рд╕рднреА рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдмрдВрдбрд▓ рдХреЗ рдХреБрд▓ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реИред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдкрд░рд┐рдгрд╛рдо:



рдкрд░реАрдХреНрд╖рдг / рдмрд┐рди / рдРрдк рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕рд░рд▓ рд╢-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛ рдкрд░ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдРрдк рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ:

 #!/bin/sh JLINK_VM_OPTIONS="-Diterations=10" #     ,       DIR=`dirname $0` $DIR/java $JLINK_VM_OPTIONS -m com.mycompany.app/com.mycompany.app.App $@ 

C2 рдкрд░ рдкрд░реАрдХреНрд╖рдг / рдмрд┐рди / рдРрдк рдЪрд▓рд╛рдПрдВ:

 ./test/bin/app In 2017 I would like to run ALL languages in one VM. 

рдкрд░рд┐рдгрд╛рдо
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 1 - 1 (315 рдПрдордПрд╕)
2 (231 рдПрдордПрд╕)
3 (214 рдПрдордПрд╕)
4 (297 рдПрдордПрд╕)
5 (257 рдПрдордПрд╕)
6 (211 рдПрдордПрд╕)
7 (217 рдПрдордПрд╕)
8 (245 рдПрдордПрд╕)
9 (222 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2424 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 2 - 1 (215 рдПрдордПрд╕)
2 (215 рдПрдордПрд╕)
3 (223 рдПрдордПрд╕)
4 (224 рдПрдордПрд╕)
5 (217 рдПрдордПрд╕)
6 (208 рдПрдордПрд╕)
7 (208 рдПрдордПрд╕)
8 (222 рдПрдордПрд╕)
9 (222 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2164 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддрд┐ 3 - 1 (206 рдорд┐ред)
2 (226 рдПрдордПрд╕)
3 (234 рдПрдордПрд╕)
4 (211 рдПрдордПрд╕)
5 (212 рдПрдордПрд╕)
6 (213 рдПрдордПрд╕)
7 (210 рдПрдордПрд╕)
8 (245 рдПрдордПрд╕)
9 (223 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2216 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 4 - 1 (222 рдПрдордПрд╕)
2 (233 рдПрдордПрд╕)
3 (220 рдПрдордПрд╕)
4 (222 рдПрдордПрд╕)
5 (221 рдПрдордПрд╕)
6 (219 рдПрдордПрд╕)
7 (222 рдПрдордПрд╕)
8 (216 рдПрдордПрд╕)
9 (220 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2215 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 5 - 1 (231 рдПрдордПрд╕)
2 (230 рдПрдордПрд╕)
3 (221 рдПрдордПрд╕)
4 (226 рдПрдордПрд╕)
5 (227 рдПрдордПрд╕)
6 (223 рдПрдордПрд╕)
7 (215 рдПрдордПрд╕)
8 (216 рдПрдордПрд╕)
9 (219 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2234 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 6 тАЛтАЛ- 1 (227 рдПрдордПрд╕)
2 (218 рдПрдордПрд╕)
3 (221 рдПрдордПрд╕)
4 (254 рдПрдордПрд╕)
5 (222 рдПрдордПрд╕)
6 (212 рдПрдордПрд╕)
7 (214 рдПрдордПрд╕)
8 (222 рдПрдордПрд╕)
9 (222 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2241 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 7 - 1 (217 рдПрдордПрд╕)
2 (225 рдПрдордПрд╕)
3 (222 рдПрдордПрд╕)
4 (223 рдПрдордПрд╕)
5 (227 рдПрдордПрд╕)
6 (221 рдПрдордПрд╕)
7 (219 рдПрдордПрд╕)
8 (226 рдПрдордПрд╕)
9 (219 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2217 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 8 - 1 (218 рдПрдордПрд╕)
2 (242 рдПрдордПрд╕)
3 (219 рдПрдордПрд╕)
4 (218 рдПрдордПрд╕)
5 (224 рдПрдордПрд╕)
6 (226 рдПрдордПрд╕)
7 (223 рдПрдордПрд╕)
8 (220 рдПрдордПрд╕)
9 (219 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2228 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 9 - 1 (234 рдПрдордПрд╕)
2 (218 рдПрдордПрд╕)
3 (217 рдПрдордПрд╕)
4 (217 рдПрдордПрд╕)
5 (225 рдПрдордПрд╕)
6 (222 рдПрдордПрд╕)
7 (216 рдПрдордПрд╕)
8 (226 рдПрдордПрд╕)
9 (214 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2212 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 10 - 1 (226 рдПрдордПрд╕)
2 (230 рдПрдордПрд╕)
3 (215 рдПрдордПрд╕)
4 (238 рдПрдордПрд╕)
5 (225 рдПрдордПрд╕)
6 (218 рдПрдордПрд╕)
7 (218 рдПрдордПрд╕)
8 (215 рдПрдордПрд╕)
9 (228 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2233 рдПрдордПрд╕)

рдЕрдм рдЧреНрд░реЗрд╡рд▓рдо рдкрд░ ( JLINK_VM_OPTIONS рдЪрд░ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЭрдВрдбреЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ):

рдкрд░реАрдХреНрд╖рдг / рдмрд┐рди / рдПрдкреНрд▓рд┐рдХреЗрд╢рди
 #!/bin/sh JLINK_VM_OPTIONS="-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler -Diterations=10" DIR=`dirname $0` $DIR/java $JLINK_VM_OPTIONS -m com.mycompany.app/com.mycompany.app.App $@ 


рдкрд░рд┐рдгрд╛рдо:

 Error occurred during initialization of boot layer java.lang.module.FindException: Module jdk.internal.vm.ci not found 

рдЦреИрд░, рд╣рдо рд░рд╡рд╛рдирд╛ рд╣реЛ рдЧрдП рд╣реИрдВ ... рдФрд░ рдЕрдм рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЬрд╛рд╡рд╛ 11 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рдХреЛ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред

рдореЙрдбреНрдпреВрд▓-info.java рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг:

 module com.mycompany.app { requires jdk.internal.vm.compiler; requires org.graalvm.sdk; requires org.graalvm.truffle; requires transitive org.graalvm.js; requires transitive org.graalvm.js.scriptengine; } 

рд╣рдо рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ , рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВ ред

рдкрд░рд┐рдгрд╛рдо:

 Error: automatic module cannot be used with jlink: icu4j from file:///home/slava/JavaProjects/graal-js-jdk11-maven-demo/target/lib/icu4j-62.1.jar 

"рдСрдЯреЛрдореИрдЯрд┐рдХ рдореЙрдбреНрдпреВрд▓ рдХреЗрдиреЛрдЯ рдмреА uzd" рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рд╣реИ? рдФрд░ рдпрд╣ рдЬрд┐рдВрдХ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ icu4j lib рдореЗрдВ рдореЙрдбреНрдпреВрд▓-info.class рдирд╣реАрдВ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд░реНрдЧ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд░рд┐рд╡рд╛рдж рдХреЗ рдЕрдВрджрд░ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

  • рдХрд┐рд╕реА рднреА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реВрдЪреА рдХреЛ рд╕рдордЭреЗрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓-info.java рдмрдирд╛рдПрдВ, рдЙрди рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдмрд╛рд╣рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП
  • рд╕рдВрдХрд▓рди рдореЙрдбреНрдпреВрд▓-info.java рдХреЗ рд▓рд┐рдП
  • рдХрд┐рд╕реА рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдореЙрдбреНрдпреВрд▓-info.java рдХреЛ dzharnik рдореЗрдВ рдбрд╛рд▓реЗрдВ

рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!

рдЗрд╕рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓-info.java рдлрд╝рд╛рдЗрд▓ рд╣рдорд╛рд░реЗ рд▓рд┐рдП Openjdk-11 рд╕реЗ jdeps рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧреА:



рд╣рдо icu4j рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓-info.java рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:



рд╣рдо рдореЙрдбреНрдпреВрд▓- info.class рдХреЛ рдзрдХреЗрд▓ рдХрд░ dzharnik рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:

 $JAVA_HOME/bin/jar uf target/lib/icu4j-62.1.jar -C target/modules module-info.class 

рд▓рд┐рдВрдХ рдХрд░реЗрдВ , рдЪрд▓рд╛рдПрдВ ред

рдкрд░рд┐рдгрд╛рдо
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 1 - 1 (1216 рдПрдордПрд╕)
2 (223 рдПрдордПрд╕)
3 (394 рдПрдордПрд╕)
4 (138 рдПрдордПрд╕)
5 (116 рдПрдордПрд╕)
6 (102 рдПрдордПрд╕)
7 (120 рдПрдордПрд╕)
8 (106 рдПрдордПрд╕)
9 (110 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (2619 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 2 - 1 (166 рдПрдордПрд╕)
2 (133 рдПрдордПрд╕)
3 (142 рдПрдордПрд╕)
4 (157 рдПрдордПрд╕)
5 (119 рдПрдордПрд╕)
6 (134 рдПрдордПрд╕)
7 (153 рдПрдордПрд╕)
8 (95 рдПрдордПрд╕)
9 (85 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (1269 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 3 - 1 (86 рдПрдордПрд╕)
2 (81 рдПрдордПрд╕)
3 (87 рдПрдордПрд╕)
4 (83 рдПрдордПрд╕)
5 (85 рдПрдордПрд╕)
6 (100 рдПрдордПрд╕)
7 (87 рдПрдордПрд╕)
8 (83 рдПрдордПрд╕)
9 (85 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (887 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 4 - 1 (84 рдПрдордПрд╕)
2 (86 рдПрдордПрд╕)
3 (88 рдПрдордПрд╕)
4 (91 рдПрдордПрд╕)
5 (85 рдПрдордПрд╕)
6 (88 рдПрдордПрд╕)
7 (87 рдПрдордПрд╕)
8 (85 рдПрдордПрд╕)
9 (85 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (864 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 5 - 1 (94 рдПрдордПрд╕)
2 (86 рдПрдордПрд╕)
3 (84 рдПрдордПрд╕)
4 (83 рдПрдордПрд╕)
5 (85 рдПрдордПрд╕)
6 (86 рдПрдордПрд╕)
7 (84 рдПрдордПрд╕)
8 (84 рдПрдордПрд╕)
9 (83 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (854 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 6 тАЛтАЛ- 1 (83 рдПрдордПрд╕)
2 (89 рдПрдордПрд╕)
3 (87 рдПрдордПрд╕)
4 (87 рдПрдордПрд╕)
5 (86 рдПрдордПрд╕)
6 (86 рдПрдордПрд╕)
7 (91 рдПрдордПрд╕)
8 (86 рдПрдордПрд╕)
9 (85 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (865 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 7 - 1 (87 рдПрдордПрд╕)
2 (86 рдПрдордПрд╕)
3 (88 рдПрдордПрд╕)
4 (90 рдПрдордПрд╕)
5 (91 рдПрдордПрд╕)
6 (87 рдПрдордПрд╕)
7 (85 рдПрдордПрд╕)
8 (85 рдПрдордПрд╕)
9 (86 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (868 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 8 - 1 (84 рдПрдордПрд╕)
2 (85 рдПрдордПрд╕)
3 (86 рдПрдордПрд╕)
4 (84 рдПрдордПрд╕)
5 (84 рдПрдордПрд╕)
6 (88 рдПрдордПрд╕)
7 (85 рдПрдордПрд╕)
8 (86 рдПрдордПрд╕)
9 (86 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (852 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 9 - 1 (83 рдПрдордПрд╕)
2 (85 рдПрдордПрд╕)
3 (84 рдПрдордПрд╕)
4 (85 рдПрдордПрд╕)
5 (89 рдПрдордПрд╕)
6 (85 рдПрдордПрд╕)
7 (88 рдПрдордПрд╕)
8 (86 рдПрдордПрд╕)
9 (83 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (850 рдПрдордПрд╕)
- рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ 10 - 1 (83 рдПрдордПрд╕)
2 (84 рдПрдордПрд╕)
3 (83 рдПрдордПрд╕)
4 (82 рдПрдордПрд╕)
5 (85 рдПрдордПрд╕)
6 (83 рдПрдордПрд╕)
7 (84 рдПрдордПрд╕)
8 (94 рдПрдордПрд╕)
9 (93 рдПрдордПрд╕)
рдХреБрд▓: 69999993 (856 рдПрдордПрд╕)

рд╣реБрд░реНрд░реЗ! рд╣рдордиреЗ рдХрд░ рджрд┐рдЦрд╛рдпрд╛! рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ (рддрд╛рдЬрд╛ рдЧреНрд░реЗрд╡рд▓рдо рд╕рд╣рд┐рдд), рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдФрд░ рдпреБрд╡рд╛ рдорд╣рд┐рд▓рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣реЗ рд╢-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдЖрд╡реЗрджрди рд╣реИред

рдкреБрдирд╢реНрдЪ


рдЬрд╛рд╡рд╛ рдмреЛрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рджрд┐рдорд╛рдЧ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рднреЛрдЬрди рджреЗрддрд╛ рд╣реИред рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ, рдкреНрд░рдпреЛрдЧ, рд╢реЗрдпрд░ рдЕрдиреБрднрд╡ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд▓реНрдж рд╣реА рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦреВрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдореИрдВрдиреЗ рдкрд╛рд▓рддреВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдХрдмреНрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░ рджрд┐рдпрд╛ (рд╡рд╣рд╛рдБ vert.x, asynchronism рдФрд░ js-script рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛)ред

рдФрд░ рдлрд┐рд░ рднреА ... рдпрд╣ рд╣реИрдмреЗ рдкрд░ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИ, - рдХреГрдкрдпрд╛, рдореБрд╢реНрдХрд┐рд▓ рдордд рдорд╛рд░реЛред

Source: https://habr.com/ru/post/hi445978/


All Articles