AJDK 8.0.0 Release Notes

Source: Internet
Author: User

Here, it's easy to test.

Version number

$Java-versionJavaVersion"1.8.0_66"OpenJDK Runtime Environment (Alibaba8.0.0) (Build1.8.0_66-b60)OpenJDK --BitServer VM (Alibaba8.0.0) (Build -. the-B60,Mixed mode)
Multi-tenancy (Technical Preview)

multi-tenant JDK through the JVM's virtualization/resource isolation capabilities, support container multi-tenancy, multiple applications can be deployed in the same "multi-tenant" container at the same time, to improve the deployment density, so as to increase the resource utilization, reduce the deployment cost of single application ( If you need multi-tenancy support, contact the JVM team.

    • CPU Isolation
      Added command-line option//-xx:+tenantcputhrottling//to turn on CPU quota functionality for individual tenants. The default is off and the restart takes effect.

    • Memory isolation
      Added command-line option//-xx:+tenantheapthrottling//to enable memory isolation and throttling for a single tenant, which currently only supports the G1 garbage collection policy. The default is off and the restart takes effect.
      The Tenantconfiguration class can be used to set the upper memory limit for each tenant, and when the tenant uses more memory than the specified limit, the JVM will attempt to trigger the full GC to reclaim space to meet the tenant's memory limit, if the GC is still not satisfied. Throws a outofmemoryerror error in the thread that allocates memory.

Tools

Jcmd extension

    • Add Javaagent.load and Agentlib.load two commands, the user can not write any code, using these two commands to implement the Java agent and JVMTI agent dynamic loading.
Diagnosis and control
  1. The method of tracking hot spot is used to track information according to methods, reduce method Size, improve the effectiveness of JIT, and improve the performance of hot spot method.

    • The command-line option,-xx:+tracebighotmethod, is used to print a method that is large in size and frequently called in standard output. Turned off by default and can be turned on dynamically.
  2. Gets the stacktrace of the exception loss

    • In the default mode, the JVM ignores the build of the hotspot exception stack. The user can dynamically adjust the Omitstacktraceinfastthrow to false with tools such as Jinfo while the app is running, resulting in a full exception StackTrace (advanced feature, used under the JVM team guidance).
  3. GC problems caused by large array allocations

    • Add command line option-xx:arrayallocationwarningsize=xxx, default value 512M. When the size of a large object is allocated in a heap larger than this value, the standard output prints a large array of allocation stacks, which are used to troubleshoot GC problems caused by large array allocations.
  4. Directmemory Use Warning

    • Add command-line option-xx:directmemoryusagewarningratio=xxx, when the percentage of direct memory used for direct memory maximum (maxdirectmemory) exceeds this value, Print logs in standard output to troubleshoot GC issues caused by the assigned direct memory exceeding the maximum value.
  5. GC Problem-Assisted troubleshooting

    • Users can dynamically modify GC-related parameters, such as Disableexplicitgc,explicitgcinvokesconcurrent and printjnigcstalls, with tools such as Jinfo, while the app is running, to help troubleshoot and troubleshoot GC issues.
  6. JVM Crash Log Enhancement

    • In the crash log of AJVM, the assembly instructions before and after the PC are printed out to assist in troubleshooting the root cause of the JVM crash.
Performance optimization
  1. CMS Full GC parallelization

    • Added a new parallel FULLGC algorithm to the CMS algorithm, which is closed by default. You can enable the GC algorithm by setting the option-XX:+CMSPARALLELFULLGC explicitly in the startup parameter. After opening, when the application uses the CMS algorithm, if triggered FULLGC, can significantly reduce the FULLGC downtime, fullgc the number of threads can be specified by-xx:parallelgcthreads=x, and the CMS minor GC threads consistent.
  2. Restore unused Java heap to physical memory, improve memory usage efficiency, and increase application deployment density

    • Use the command-line option-xx:+deallocateheappages,cms to return unused heap to physical memory. It is closed by default and can be modified dynamically. (Note: If you have previously used the reclaimmostnativememory parameter, use Deallocateheappages instead.)
  3. Parnew YGC Optimization

    • Improve the task stealing strategy in PARNEWGC, add a new Hotspot command-line option-XX:STEALINGFAILURETHRESHOLD=XXX, the default value is 10, when the number of failures >10, discard the task steal, Used to improve the CPU waste that may result from uneven assignment of tasks in PARNEWGC.
  4. crc32c

    • Based on the x86_64 hardware directive, the intrinsic crc32c API with better performance, temporary data validation can be switched from CRC32 to crc32c. Persistent data considers compatibility and does not recommend changes. (Note that if you used tcrc32c before, use crc32c)
  5. Native memory optimization, user application Transparent

    • Use Jemalloc to increase the efficiency of native memory allocation and increase system memory utilization. Subsequent versions provide native memory diagnostic capabilities based on Jemalloc.
  6. JNI call optimization, user application Transparent

    • Adjust the branching order of the code generated by the JNI call under the X86_64 platform, and improve the performance of JNI calls by reducing pipeline pauses.
New application Programming Interface (API)

JNI Fetching Thread Information

    • Added a JMM programming interface "Getthreadjnienvinfo" for quick access to all thread-related information (advanced features, used under the JVM team guidance) from JNI.
Bug fixes

JDK-8048556-[Ref:5]
JDK-8139549-[Ref:6]

Trial function

Symbol translation Service

    • Added the Hotspot command line option-xx:+usesymboltranslation, which can be used to obtain the corresponding method symbol information according to the PC value, to support the performance profiling tool.

NOTES: Contact the JVM team if needed

Track G1 large object allocations to improve performance for G1 use

    • When using the G1 GC policy, the allocation of humongous objects can greatly damage the performance of G1, using command-line options-xx:+traceg1hobjallocation to print the allocation stack of large objects in standard output. Based on these trace information, users can reduce the allocation of large objects at the application level and improve the efficiency of G1.

Upgrade Wizard

Spring upgrades to 3.2.9 or more (if you want to use the JDK8 complete new feature, it is recommended that spring rise to 4.x,servlet to 3.x)
WEBX application If you want to use SPRING4, recommend WEBX upgrade, reference: HTTP://GITLAB.ALIBABA-INC.COM/MIDDLEWARE-CONTAINER/CITRUS/WIKIS/WEBX-SPRING4-JDK8
If you have Org.projectlombok:lombok, upgrade to 1.14.X, do not upgrade to 1.16.x
If there is ORG.ECLIPSE.JDT.CORE.COMPILER:ECJ, upgrade to 4.4.2 and above
At present the group many two party package relies on spring2.x, two party package is easy to introduce spring2.x. Excluding spring2.x, it is highly recommended to use this empty package to exclude.

  <dependency>    <groupId>Org.springframework</groupId>    <artifactid>Spring</artifactid>    <version>999-not-exist</version>  </Dependency>

Start parameter adjustment:
Jdk8 removed the perm area, so: PermSize changed to Metaspacesize,maxpermsize instead of maxmetaspacesize.
In addition, the following parameters in JDK8 have not been supported, will be reported warning, recommended deletion: Usecmscompactatfullcollection and Cmsfullgcsbeforecompaction



Ajdk 8.0.0 Release Notes

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.