Java SE 20 เป€เบ›เบตเบ”เบ•เบปเบง

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบปเบเป€เบ”เบทเบญเบ™, Oracle เป„เบ”เป‰เบ›เปˆเบญเบเปเบžเบฅเบ”เบŸเบญเบก Java SE 20 (Java Platform, Standard Edition 20), เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เป‚เบ„เบ‡เบเบฒเบ™ OpenJDK เปเบšเบšเป‚เบญเป€เบžเบ™เบŠเบญเบชเป€เบ›เบฑเบ™เป€เบญเบเบฐเบชเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡. เบเบปเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบฅเบถเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเปœเบฑเบšเบชเบฐเปœเบนเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบญเบญเบ, Java SE 20 เบเบฑเบ‡เบ„เบปเบ‡เบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเปเบžเบฅเบ”เบŸเบญเบก Java เบฅเบธเป‰เบ™เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰ - เป‚เบ„เบ‡เบเบฒเบ™ Java เบ—เบตเปˆเบ‚เบฝเบ™เป„เบงเป‰เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰เบชเปˆเบงเบ™เปƒเบซเบเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ•เป‰เบฅเบธเป‰เบ™เปƒเปเปˆ. เบฅเบธเป‰เบ™เบ—เบตเปˆเบžเป‰เบญเบกเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡ Java SE 20 (JDK, JRE, เปเบฅเบฐ Server JRE) เปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบกเบชเบณเบฅเบฑเบš... Linux (x86_64, AArch64), Windows (x86_64) เปเบฅเบฐ macOS (x86_64, AArch64). เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™ OpenJDK, เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡ Java 20 เปเบกเปˆเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบขเปˆเบฒเบ‡เบ„เบปเบšเบ–เป‰เบงเบ™เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” GPLv2 เบžเป‰เบญเบกเบ”เป‰เบงเบเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ GNU ClassPath, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบเบเบฑเบšเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบ„เป‰เบฒ.

Java SE 20 เบ–เบทเบเบˆเบฑเบ”เป€เบ›เบฑเบ™เบฅเบธเป‰เบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบปเปˆเบงเป„เบ›เปเบฅเบฐเบˆเบฐเบชเบทเบšเบ•เปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบˆเบปเบ™เบเปˆเบงเบฒเบเบฒเบ™เบ›เปˆเบญเบเบ•เปเปˆเป„เบ›. เบชเบฒเบ‚เบฒเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเป„เบฅเบเบฐเบเบฒเบง (LTS) เบ„เบงเบ™เป€เบ›เบฑเบ™ Java SE 17, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบชเบทเบšเบ•เปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบˆเบปเบ™เบเปˆเบงเบฒ 2029. เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบ•เบทเบญเบ™เบ—เปˆเบฒเบ™เบงเปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ‚เบญเบ‡ Java 10, เป‚เบ„เบ‡เบเบฒเบ™เป„เบ”เป‰เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบซเบกเปˆ, เป€เบŠเบดเปˆเบ‡เบซเบกเบฒเบเป€เบ–เบดเบ‡เบงเบปเบ‡เบˆเบญเบ™เบ—เบตเปˆเบชเบฑเป‰เบ™เบเบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบเบฒเบ™เบ›เปˆเบญเบเปƒเบซเบกเปˆ. เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบซเบกเปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเบนเปˆเปƒเบ™เบชเบฒเบ‚เบฒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเปเบฅเบฐเบˆเบฒเบเบชเบฒเบ‚เบฒเปƒเบ”เบ–เบทเบเปเบเบเบญเบญเบเบ—เบธเบเป†เบซเบปเบเป€เบ”เบทเบญเบ™เป€เบžเบทเปˆเบญเบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเบเบฒเบ™เบ›เปˆเบญเบเปƒเบซเบกเปˆ.

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆเปƒเบ™ Java 20 เบ›เบฐเบเบญเบšเบกเบต:

  • เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš Scoped Values, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เปƒเบ™เบ—เบปเปˆเบงเบเบฐเบ—เบนเป‰เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบฅเบเบ›เปˆเบฝเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฐเบ—เบนเป‰เป€เบ”เบฑเบ (เบกเบนเบ™เบ„เปˆเบฒเปเบกเปˆเบ™เบชเบทเบšเบ—เบญเบ”). เบ‚เบญเบšเป€เบ‚เบ”เบกเบนเบ™เบ„เปˆเบฒเปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบžเบทเปˆเบญเบ—เบปเบ”เปเบ—เบ™เบเบปเบ™เป„เบเบ•เบปเบงเปเบ›เบ‚เบญเบ‡ thread-local เปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบเบฐเบ—เบนเป‰ virtual (เบžเบฑเบ™เบซเบผเบทเบฅเป‰เบฒเบ™เบ‚เบญเบ‡ threads). เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เปเบฅเบฐเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบเบฐเบ—เบนเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบญเบฐเบ”เบตเบ”เบ–เบทเบเบ‚เบฝเบ™เบ„เบฑเป‰เบ‡เบ”เบฝเบง, เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เปเบฅเบฐเบเบฑเบ‡เบ„เบปเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบเบฐเบ—เบนเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. class Server { final static ScopedValue CURRENT_USER = new ScopedValue(); void server(เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, เบ„เปเบฒเบ•เบญเบšเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡) { var level = (request. isAuthorized()? ADMIN : GUEST); var user = เบœเบนเป‰เปƒเบŠเป‰เปƒเปเปˆ(เบฅเบฐเบ”เบฑเบš); ScopedValue.where(CURRENT_USER, user).run(() -> Application.handle(request, response)); } } class DatabaseManager { DBConnection open() { var user = Server.CURRENT_USER.get(); เบ–เป‰เบฒ (!user.canOpen()) เบ–เบดเป‰เบก InvalidUserException(); เบเบฑเบšเบ„เบทเบ™ DBConnection (... ); } }
  • เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เบ‚เบฐเบซเบเบฒเบเบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบ™ Java 16 เป€เบžเบทเปˆเบญเบงเบดเป€เบ„เบฒเบฐเบ„เปˆเบฒเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบšเบฑเบ™เบ—เบถเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡: record Point(int x, int y) {} static void printSum(Object obj) { if (obj instanceof Point p) { int x = px(); int y = py(); System.out.println(x+y); } }
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบตเบชเบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเปƒเบ™เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™ "เบชเบฐเบซเบผเบฑเบš" เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เป‰เบฒเบ "เบเปเบฅเบฐเบ™เบต" เปƒเบŠเป‰เบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เปเบ•เปˆเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบ—เบตเปˆเบเบงเบกเป€เบญเบปเบฒเบŠเบธเบ”เบ‚เบญเบ‡เบ„เปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ„เบงเบฒเบกเป€เบ„เบฑเปˆเบ‡เบ•เบถเบ‡. เบ•เปˆเบญเบ‡เป‚เบชเป‰เบ‚เบญเบ‡ "เบ–เป‰เบฒ ... เบญเบทเปˆเบ™" เบชเบฐเปเบ”เบ‡เบญเบญเบ. static String formatterPatternSwitch(object obj) { return switch (obj) { case Integer i -> String.format("int %d", i); case Long l -> String.format("เบเบฒเบง %d",l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); }; }
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡ FFM (Foreign Function & Memory) API เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เป‚เบ›เปเบเบก Java เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบžเบฒเบเบ™เบญเบเปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบžเบฒเบเบ™เบญเบเปเบฅเบฐเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบžเบฒเบเบ™เบญเบ JVM.
  • เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบเบฐเบ—เบนเป‰ virtual เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบเบฐเบ—เบนเป‰เบ—เบตเปˆเบกเบตเบ™เป‰เปเบฒเบซเบ™เบฑเบเป€เบšเบปเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ‚เบฝเบ™เบ‡เปˆเบฒเบเบซเบผเบฒเบเปเบฅเบฐเบฎเบฑเบเบชเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ•เบดเบžเบฒเบšเบชเบนเบ‡.
  • เป€เบžเบตเปˆเบก API เบ—เบปเบ”เบฅเบญเบ‡เบ—เบตเบชเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบซเบผเบฒเบเบเบฐเบ—เบนเป‰เบ‡เปˆเบฒเบเป‚เบ”เบเบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบซเบผเบฒเบเบงเบฝเบเบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบ›เบฑเบ™เบšเบฅเบฑเบญเบเบ”เบฝเบง.
  • เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบซเป‰เบฒเบ‚เบญเบ‡ Vector API เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เบชเบฐเบซเบ™เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ vector เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ vector เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต x86_64 เปเบฅเบฐ AArch64 เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเป‰เบญเบกเบเบฑเบ™เบเบฑเบšเบ„เปˆเบฒเบซเบผเบฒเบ (SIMD). เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบ™ HotSpot JIT compiler เบชเปเบฒเบฅเบฑเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” vectorization เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ scalar, API เปƒเบซเบกเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ„เบงเบšเบ„เบธเบก vectorization เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster