Giter Site home page Giter Site logo

tencent / tencentkona-8 Goto Github PK

View Code? Open in Web Editor NEW
909.0 46.0 148.0 520.45 MB

Tencent Kona is a no-cost, production-ready distribution of the Open Java Development Kit (OpenJDK), Long-term support(LTS) with quarterly updates. Tencent Kona serves as the default JDK internally at Tencent Cloud for cloud computing and other Java applications.

License: Other

Makefile 0.25% M4 0.10% Shell 1.05% C 6.61% C++ 11.88% Java 76.24% HTML 0.73% Batchfile 0.02% Objective-C 0.39% JavaScript 1.23% DTrace 0.04% Assembly 0.04% XSLT 0.20% Lex 0.01% Roff 1.16% Python 0.04% Perl 0.01% Ruby 0.01% Haskell 0.01% CSS 0.01%

tencentkona-8's Introduction

Tencent Kona

Tencent Kona 8

Tencent Kona is a no-cost, production-ready distribution of the Open Java Development Kit (OpenJDK), Long-Term Support(LTS) with quarterly updates.

Kona serves as the default JDK at Tencent internally, optimized for extreme-scale of Big Data, Machine Learning and Cloud Computing workload. It is also used to build and maintain a Tencent supported version of OpenJDK for Tencent customers and partners who wish to use OpenJDK to run their applications.

Kona also implements China's cryptographic algorithms, including SM2, SM3 and SM4, and secure communication protocol TLCP (or SMSSL). For more details on theses features, please refer to the reference guide.

Using Tencent Kona 8

Tencent Kona currently supports Linux/x86_64, Linux/Aarch64, Windows/x86_64, Mac/x86_64.

License

Tencent Kona is under the same licensing terms as the upstream OpenJDK project. It is clearly a "friendly fork". Tencent intends to contribute on the continuous success of Java and upstream as many enhancements as possible. Please read the file: "LICENSE".

Introduction, Installation Guide and User Guide

Please read https://github.com/Tencent/TencentKona-8/wiki

The binary for Installation

Please access https://github.com/Tencent/TencentKona-8/releases

Issues Report and Discussion

Please use https://github.com/tencent/TencentKona-8/issues

tencentkona-8's People

Contributors

alekseiefimov avatar chrishegarty avatar coffeys avatar coleenp avatar dfuch avatar erikj79 avatar gctony avatar gnu-andrew avatar hns avatar jddarcy avatar jerboaa avatar jimlaskey avatar joewang-java avatar jonathan-gibbons avatar kevinjwalls avatar martinuy avatar mcimadamore avatar michael-mc-mahon avatar mrserb avatar naotoj avatar prrace avatar rpatil-openjdk avatar rwestrel avatar seanjmullan avatar stefank avatar sundararajana avatar szegedi avatar wangweij avatar xueleifan avatar zhengyu123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tencentkona-8's Issues

CDS 支持源码

想请教下,高版本特性 appCDS 迁移过来的,这部分的源码在哪里呀,是否可以提供 commitID 或者源码位置,想学习下如何迁移能力。

aarch64-8.0.12 镜像中文论码

最近在搞国产化使用了aarch64-8.0.12 这个镜像,发现中文论码了
docker pull konajdk/konajdk:aarch64-8.0.12
我的dockerFile
FROM konajdk/konajdk:aarch64-8.0.12
运行镜像后容器log中的中文论码

8.0.10fiber版本遇到崩溃

A fatal error has been detected by the Java Runtime Environment:

Internal Error (javaCalls.cpp:56), pid=19, tid=0x00007f7540ca5700

guarantee(!thread->is_Compiler_thread()) failed: cannot make java calls from the compiler

JRE version: OpenJDK Runtime Environment (8.0_332-b01) (build 1.8.0_332_fiber-b1)

Java VM: OpenJDK 64-Bit Server VM (25.332-b1 mixed mode, sharing linux-amd64 compressed oops)

Core dump written. Default location: /cnc/run/gamesvr/core or core.19

If you would like to submit a bug report, please visit:

http://bugreport.java.com/bugreport/crash.jsp

--------------- T H R E A D ---------------

Current thread (0x00007f756886a590): JavaThread "C1 CompilerThread1" daemon [_thread_in_vm, id=32, stack(0x00007f7540ba6000,0x00007f7540ca6000)]

Stack: [0x00007f7540ba6000,0x00007f7540ca6000], sp=0x00007f7540ca2e30, free space=1011k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xb0de8a] VMError::report_and_die()+0x1da
V [libjvm.so+0x4ff032] report_vm_error(char const*, int, char const*, char const*)+0x62
V [libjvm.so+0x6a754f] JavaCallWrapper::JavaCallWrapper(methodHandle, Handle, JavaValue*, Thread*)+0x20f
V [libjvm.so+0x6a9164] JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x834
V [libjvm.so+0x4fa7ba] Coroutine::call_forkjoinpool_method(Thread*, Method*, JavaCallArguments*, JavaValue*)+0xfa
V [libjvm.so+0x4fab4e] Coroutine::try_compensate(Thread*)+0x6e
V [libjvm.so+0x93d3a0] ObjectMonitor::enter(Thread*)+0xb0
V [libjvm.so+0x673520] InstanceRefKlass::acquire_pending_list_lock(BasicLock*)+0xa0
V [libjvm.so+0xb0f1d2] VM_GC_Operation::doit_prologue()+0x82
V [libjvm.so+0xb17f21] VM_G1IncCollectionPause::doit_prologue()+0x11
V [libjvm.so+0xb151bd] VMThread::execute(VM_Operation*)+0x1bd
V [libjvm.so+0x5a7116] G1CollectedHeap::attempt_allocation_slow(unsigned long, unsigned char, unsigned int*, unsigned int*)+0x336
V [libjvm.so+0x5a72ed] G1CollectedHeap::allocate_new_tlab(unsigned long)+0xdd
V [libjvm.so+0x4838a5] CollectedHeap::allocate_from_tlab_slow(KlassHandle, Thread*, unsigned long)+0x145
V [libjvm.so+0x66578b] CollectedHeap::common_mem_allocate_init(KlassHandle, unsigned long, Thread*)+0x6b
V [libjvm.so+0x652ce8] InstanceKlass::allocate_instance(Thread*)+0x38
V [libjvm.so+0x6b2042] java_lang_String::basic_create(int, Thread*)+0x32
V [libjvm.so+0x6b2400] java_lang_String::create_from_unicode(unsigned short*, int, Thread*)+0x30
V [libjvm.so+0xa74cfe] StringTable::intern(Handle, unsigned short*, int, Thread*)+0x23e
V [libjvm.so+0xa74fca] StringTable::intern(Symbol*, Thread*)+0x5a
V [libjvm.so+0x4ef314] ConstantPool::string_at_impl(constantPoolHandle, int, int, Thread*)+0xe4
V [libjvm.so+0x41989d] ciEnv::get_constant_by_index_impl(constantPoolHandle, int, int, ciInstanceKlass*)+0x28d
V [libjvm.so+0x419eca] ciEnv::get_constant_by_index(constantPoolHandle, int, int, ciInstanceKlass*)+0x10a
V [libjvm.so+0x441a55] ciBytecodeStream::get_constant()+0x1b5
V [libjvm.so+0x3679ee] GraphBuilder::load_constant()+0x1e
V [libjvm.so+0x372ef2] GraphBuilder::iterate_bytecodes_for_block(int)+0x16f2
V [libjvm.so+0x3739c1] GraphBuilder::iterate_all_blocks(bool)+0x151
V [libjvm.so+0x37660e] GraphBuilder::GraphBuilder(Compilation*, IRScope*)+0x4fe
V [libjvm.so+0x37ccdc] IR::IR(Compilation*, ciMethod*, int)+0x23c
V [libjvm.so+0x35d811] Compilation::build_hir()+0xe1
V [libjvm.so+0x35e005] Compilation::compile_java_method()+0x85
V [libjvm.so+0x35e122] Compilation::compile_method()+0x42
V [libjvm.so+0x35e496] Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*)+0x266
V [libjvm.so+0x35f030] Compiler::compile_method(ciEnv*, ciMethod*, int)+0xd0
V [libjvm.so+0x4ac6c6] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xcb6
V [libjvm.so+0x4adc87] CompileBroker::compiler_thread_loop()+0x6a7
V [libjvm.so+0xabfe01] JavaThread::thread_main_inner()+0xf1
V [libjvm.so+0x960452] java_start(Thread*)+0x132
C [libpthread.so.0+0x7ea5] start_thread+0xc5

arm64编译错误

错误信息

Generating precompiled header precompiled.hpp.gch
g++: error: unrecognized command line option ‘-m64’
make[6]: *** [TencentKona-8/hotspot/make/linux/makefiles/vm.make:310: precompiled.hpp.gch] Error 1
make[5]: *** [TencentKona-8/hotspot/make/linux/makefiles/top.make:119: the_vm] Error 2
make[4]: *** [TencentKona-8/hotspot/make/linux/Makefile:284: product] Error 2

开发环境:
系统:Ubuntu aarch64 GNU/Linux
gcc -v

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/9/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) 

KonaFiber怎么进行开发

使用linux系统进行开发的人毕竟是少数,大多数还是使用mac和window;这个你们内部开发是怎么解决的。是不是可以先出个beta或者preview版本方便进行开发。

[suggest] Submit to sdkman

It is recommended to submit to SDKMan like other JDK releases for easy download and use.

Submission method
https://sdkman.io/vendors

SDKMan already includes the following JDKs:
AdoptOpenJDK
Amazon
Azul Zulu
BellSoft
GraalVM
TravaOpenJDK
OpenJDK

Looking forward to JDK from China.
In addition, it is recommended to submit to the IDEA JDK list so that development tools can be downloaded from China JDK

请教:BigDecimal内存分配,以及int比long循环快的问题

您好,我在开发过程中发现一个BigDecimal加法的性能问题,我简化后的代码如下:

import java.math.BigDecimal;

public class Foo {
    public static void main(String[] args) {
        System.out.println(funInt());
        System.out.println(funLong());
    }

    static long funInt() {
        long start = System.currentTimeMillis();
        for(int i = 0; i < Integer.MAX_VALUE/20; i++) {
            add1((long) i);
        }

        return System.currentTimeMillis() - start;
    }

    static long funLong() {
        long start = System.currentTimeMillis();
        for(long i = 0L; i < (long) Integer.MAX_VALUE/20; i++) {
            add1(i);
        }

        return System.currentTimeMillis() - start;
    }

    static void add1(long i) {
        BigDecimal a = BigDecimal.valueOf(i, 2);
        BigDecimal b = BigDecimal.valueOf(i, 2);

        BigDecimal c = a.add(b);

        if(c.scale() != 2){
            throwError();
        }
    }
    
    static void add2(long i) {
        long a = i;
        long b = i + 1L;
        long c = a + b;

        if(c < 0L){
            throwError();
        }
    }

    static void throwError() {
        throw new RuntimeException("error");
    }
}

点击这里也可以使用在线的版本查看结果:

测试结果很神奇

1、第二个函数执行时间非常长

2、但是,如果两个方法调换顺序,总是会先执行的方法更快,如果仅仅执行一个方法,速度都很快;

3、另外,使用int作为for语句循环的变量时,总是比long作为变量快2倍。

请问这是什么原因?

测试环境我实验了:

JDK 1.8 和 15 64位

CPU 5800H 和 Intel 的至强

windows 7 和 11

我做了很多的测试,没有什么头绪,但我可以分享我发现的问题:

  • 如果我将 add1 改为 add2(即没有造成堆的分配,都是在栈上的操作),就不会出现第二个方法一定慢的问题,与单独执行,其性能表现都是一致的;
  • 但int 变量 比 long 变量作为循环,一定是快两倍,可是我明明是 64 位的操作系统和JVM,CPU(AMD和Intel都是)理论上都是单指令操作,不应该 32 位比 64 位快啊? 而且add2 方法没有涉及任何 L1 缓存失效等问题;
  • 进一步的我理解,既然add2是这样的表现,我就将怀疑对象放在 堆 的分配上,是不是第一个执行的方法消耗了所有可用的堆空间,导致第二个方法要不断的GC呢? 可是我又觉得不对,因为这个测试用例的最初版本,其循环是 Integer.MAX_VALUE,而不是现在的Integer.MAX_VALUE/20,而之前出现的现象是一样的。现在的版本已经将内存的消耗降低到原先的 1/20,那么就有可能第二个方法还有堆空间可以使用,但看起来不是;
  • 所以,最后我怀疑,JVM在执行第一次时,发现调用及其频繁,对编译的机器码进行了优化,导致性能好,但第二次执行时,触发了进一步的性能优化路径,但是不是这个优化是负优化,导致性能极具下降,这个就超过了我的知识范围了,还请各位专家解答,万分感谢。

SECURITY.md

增加SECURITY.md,以告之用户如何报告安全漏洞。

用Kona的Fiber解决Http阻塞的问题

  1. 看了你们的文章:https://juejin.cn/post/7007261636561993759 里面说尚未解决Socket阻塞问题(阻塞在native代码里了);
  2. 你们的demo代码中,有用netty作为client解决阻塞问题的例子;
    请问如下思路能否解决Socket阻塞线程的问题:
  3. 业务代码在fiber中执行;
  4. 业务代码将http请求发送到本地的netty客户端,netty客户端用非阻塞的socket发送http请求;
  5. 业务代码用 completefuture.get() 等待netty客户端反馈;

请问: completefuture.get() 时,阻塞的是fiber还是其所属的核心线程?

Konajdk8 基础镜像的优化建议

目前蓝盾社区开源版的基础镜像想从openjdk:8-jdk-slim 切换到 konajdk/konajdk:8 , 但在切换过程中发现一些使用上的不便,对比目前openJDK的镜像,提2点优化建议,希望Kona越来越好:

1、konajdk/konajdk:8 缺失一些基础的软件安装管理工具, 比如yum或apt 等,对比openjdk:8-jdk-slim 是有基础的apt工具,基于这个基础镜像,可以快速安装一些缺失的软件。 相反konajdk需要手动的去下二进制包到本地再安装,不利于维护

2、konajdk/konajdk:8 和 konajdk/konajdk:aarch64-8.0.9 对应amd64/arm64, 像这种同一个版本jdk的不同平台架构镜像,在tag的管理可以像 openjdk:8-jdk-slim 一样, 不需要让用户用找不同的tag来区别是基于arm64或基于amd64 。
https://hub.docker.com/layers/openjdk/library/openjdk/8-jdk-slim/images/sha256-15d9cad96da611b8ec1990d13001bddaa62aa75e36d1a7dbe949506265791251?context=explore
比如像下图
image
image

MacOs unable run Kona?

I want use Macbook running Kona, but run time exception: cannot execute binary file. the jdk only on linux running?

konajdk/konajdk:8没有字体库

使用konajdk/konajdk:8镜像的时候,会发现缺少了字体库。如何解决这问题,里面也没有 apt-get啥的,怎么安装fontconfig

生产线上关闭了控制台打印,异常抛出时,异常信息会被吃了,影响问题排查

主要是这个方法:
java.lang.ThreadGroup#uncaughtException

    public void uncaughtException(Thread t, Throwable e) {
        if (parent != null) {
            parent.uncaughtException(t, e);
        } else {
            Thread.UncaughtExceptionHandler ueh =
                Thread.getDefaultUncaughtExceptionHandler();
            if (ueh != null) {
                ueh.uncaughtException(t, e);
            } else if (!(e instanceof ThreadDeath)) {
                System.err.print("Exception in thread \""
                                 + t.getName() + "\" ");
                e.printStackTrace(System.err);
            }
        }
    }

是否可以考虑用下slf4j bridge 打印异常,保证日志信息在文本中能保留下来。

sun.security.provider.Sun 大量锁等待

JDK 版本:
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Tencent Kona 8.0.9) (build 1.8.0_322-b1)
OpenJDK 64-Bit Server VM (Tencent Kona 8.0.9) (build 25.322-b1, mixed mode, sharing)

线程BLOCK堆栈:
java.lang.Thread.State: BLOCKED (on object monitor)
at java.security.Provider.getService(Provider.java:1035)
- waiting to lock <0x00000005005728d0> (a sun.security.provider.Sun)
at sun.security.jca.ProviderList.getService(ProviderList.java:332)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:157)
at java.security.Security.getImpl(Security.java:695)
at java.security.MessageDigest.getInstance(MessageDigest.java:170)

切换到Oracle 1.8.0_381 问题消失

KonaFiber

Hi,

I see there is a branch called KonaFiber that includes a backport of Loom API. How stable is it at this point? Is something similar planned for TencentKona-11 too?

ppc64le环境部分方法没哟实现

在ppc64le的环境下进行kona-8的编译,编译过程中发现hotspot/src/cpu/ppc/vm/templateTable_ppc_64.cpp文件内的以下方法没有实现,是否可以更新相应的实现代码,谢谢!
TemplateTable::nofast_getfield
TemplateTable::nofast_iload
TemplateTable::nofast_aload_0
TemplateTable::nofast_putfield
TemplateTable::aload_0_internal
TemplateTable::iload_internal

有做kona的基础镜像吗

想问下有做一个kona的基础镜像吗,这样就可以直接引用镜像,在kona的环境里面写dockerfile。当然自己在里面写或者自己打镜像也可以,但是感觉如果有个官方的镜像,会比较好呢

Cannot resolve method 'ofVirtual' in 'Thread'

CleanShot 2023-12-26 at 21 50 41
From demo/fiber/mysql_sync_stress_demo

I can found 'Thread.ofVirtual()' method in project src, but can't found in Kona-8 installed with sdkman.

OS Version: mac m1 14.1.2

Kona Version: installed by sdkman
openjdk version "1.8.0_392"
OpenJDK Runtime Environment (Tencent Kona 8.0.16) (build 1.8.0_392-b1)
OpenJDK 64-Bit Server VM (Tencent Kona 8.0.16) (build 25.392-b1, mixed mode)

❯ sdk use java 8.0.392-kona
❯ java -version
openjdk version "1.8.0_392"
OpenJDK Runtime Environment (Tencent Kona 8.0.16) (build 1.8.0_392-b1)
OpenJDK 64-Bit Server VM (Tencent Kona 8.0.16) (build 25.392-b1, mixed mode)
❯ cd ~/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo
❯ mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< org.example:mysql-demo >-----------------------
[INFO] Building mysql-demo 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ mysql-demo ---
[INFO] skip non existing resourceDirectory /Users/Sartner/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo/src/main/resource
[INFO]
[INFO] --- compiler:3.11.0:compile (default-compile) @ mysql-demo ---
[INFO] Changes detected - recompiling the module! :source
[INFO] Compiling 3 source files with javac [debug target 1.8] to target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/Sartner/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo/src/main/java/SyncDatabaseDemo.java:[191,29] 找不到符号
  符号:   方法 ofVirtual()
  位置: 类 java.lang.Thread
[ERROR] /Users/Sartner/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo/src/main/java/SyncDatabaseDemo.java:[193,29] 找不到符号
  符号:   方法 ofPlatform()
  位置: 类 java.lang.Thread
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.740 s
[INFO] Finished at: 2023-12-26T21:57:54+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project mysql-demo: Compilation failure: Compilation failure:
[ERROR] /Users/Sartner/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo/src/main/java/SyncDatabaseDemo.java:[191,29] 找不到符号
[ERROR]   符号:   方法 ofVirtual()
[ERROR]   位置: 类 java.lang.Thread
[ERROR] /Users/Sartner/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo/src/main/java/SyncDatabaseDemo.java:[193,29] 找不到符号
[ERROR]   符号:   方法 ofPlatform()
[ERROR]   位置: 类 java.lang.Thread
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
❯ mvn compile -Duser.language=en
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< org.example:mysql-demo >-----------------------
[INFO] Building mysql-demo 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ mysql-demo ---
[INFO] skip non existing resourceDirectory /Users/Sartner/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo/src/main/resource
[INFO]
[INFO] --- compiler:3.11.0:compile (default-compile) @ mysql-demo ---
[INFO] Changes detected - recompiling the module! :source
[INFO] Compiling 3 source files with javac [debug target 1.8] to target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/Sartner/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo/src/main/java/SyncDatabaseDemo.java:[191,29] 找不到符号
  符号:   方法 ofVirtual()
  位置: 类 java.lang.Thread
[ERROR] /Users/Sartner/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo/src/main/java/SyncDatabaseDemo.java:[193,29] 找不到符号
  符号:   方法 ofPlatform()
  位置: 类 java.lang.Thread
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.594 s
[INFO] Finished at: 2023-12-26T21:58:25+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project mysql-demo: Compilation failure: Compilation failure:
[ERROR] /Users/Sartner/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo/src/main/java/SyncDatabaseDemo.java:[191,29] 找不到符号
[ERROR]   符号:   方法 ofVirtual()
[ERROR]   位置: 类 java.lang.Thread
[ERROR] /Users/Sartner/Downloads/TencentKona-8-KonaFiber/demo/fiber/mysql_sync_stress_demo/src/main/java/SyncDatabaseDemo.java:[193,29] 找不到符号
[ERROR]   符号:   方法 ofPlatform()
[ERROR]   位置: 类 java.lang.Thread
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

请问 OWST 相关 commit 或 patch 有吗?

GC线程调度优化 Optimized Work Stealing Threads
开启方式:默认开启,在启动参数里面显示添加 -XX:-UseOWSTTaskTerminator关闭
原理:GC并行线程通过Work Stealing进行负载均衡,减少GC停顿时间。原有Work Stealing算法中所有空闲GC线程都会频繁尝试work stealing造成CPU资源浪费,新算法采用一个master线程监控是否进行work stealing并在适当时机唤醒其它空闲GC线程,极大减少CPU资源浪费和进程间的CPU资源竞争。OWST在OpenJDK社区版本12以后支持,大数据Hibench测试有最多30%的性能提升,平均提升8%。

请问这个功能相关 commit 或 patch 可以定位下不?想学习下。

在centos中 编译时报错 :/TencentKona-8/hotspot/src/share/vm/runtime/arguments.cpp

Compiling /home/tx/TencentKona-8/hotspot/src/share/vm/runtime/arguments.cpp
In function ‘char* get_shared_archive_path()’,
    inlined from ‘static jint Arguments::parse(const JavaVMInitArgs*)’ at /home/tx/TencentKona-8/hotspot/src/share/vm/runtime/arguments.cpp:4031:46:
/home/tx/TencentKona-8/hotspot/src/share/vm/runtime/arguments.cpp:3887:14: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound depends on the length of the source argument [-Werror=stringop-overflow=]
       strncpy(shared_archive_path, SharedArchiveFile, strlen(SharedArchiveFile) + 1);
       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tx/TencentKona-8/hotspot/src/share/vm/runtime/arguments.cpp: In static member function ‘static jint Arguments::parse(const JavaVMInitArgs*)’:
/home/tx/TencentKona-8/hotspot/src/share/vm/runtime/arguments.cpp:3887:61: note: length computed here
       strncpy(shared_archive_path, SharedArchiveFile, strlen(SharedArchiveFile) + 1);
                                                       ~~~~~~^~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors

关于OWST特性可以带来大数据任务的性能提升,我很难复现此效果。能否给一些具体的benchmark case和配置说明?

linux版本:CentOS Linux release 7.6.1810 (Core)
JDK版本:TencentKona-8(Tencent Kona 8.0.7)
基测工具:Hibench(https://github.com/liubin2048/HiBench-8.0)
测试case:
micro.sleep
micro.sort
micro.terasort
micro.wordcount
测试集数据量:large huge gigantic三个量级
内存配置:
MR:Map/Reduce 堆内存均为:3G
Spark: spark.executor.memory=6g
MR和Spark均没有显式设置垃圾回收器,默认采用-XX:+UseParallelGC

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.