À´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾

ÀûÀ´w66(ÖйúÇø)_À´Àû¹ú¼ÊÆì½¢
¹ÉƱ´úÂ룺688047
ÇëÊäÈëËÑË÷Ìõ¼þ
À´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Éú̬ƽ̨
ÓÊÏäµÇ¼
µã»÷ͼƬˢÐÂ
ÒÅÍüÃÜÂë
µã»÷ͼƬˢÐÂ
01-29 2022

»ùÓÚOpenJDK 17µÄÀ´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Æ½Ì¨JavaÇéÐÎÐû²¼ £¬LoongArchƽ̨ͬ²½Ö§³Ö

2022Äê1ÔÂ27ÈÕ £¬À´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾ÖпÆÓÚÀ´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾¿ªÔ´ÉçÇøÕýʽ¶ÔÍâÐû²¼»ùÓÚOpenJDK 17µÄÀ´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Æ½Ì¨JavaÇéÐÎ  ¡£Java 17ÌṩÁËÊýǧÖÖÐÔÄÜ¡¢ÎȹÌÐÔºÍÇå¾²ÐÔ¸üР£¬ÒÔ¼°14¸öJEP£¨JDK Enhancement Proposal £¬¼´ JDK ÔöÇ¿½¨Ò飩À´½øÒ»²½ÓÅ»¯JavaÓïÑÔÇ徲̨ £¬´Ó¶ø×ÊÖú¿ª·¢Ö°Ô±Ìá¸ßÊÂÇéЧÂÊ  ¡£

Java 17ÊÇOracle×îÐÂÐû²¼µÄºã¾ÃÖ§³Ö (Long-Term Support, LTS) °æ±¾[1]  ¡£¹ØÓÚJava 17¸üÏêϸµÄÄÚÈÝÇë¼ûÏ·½Oracle¹ÙÍø[2]  ¡£´Ë´ÎÐÂÐû²¼µÄ°æ±¾ £¬³ýÁËÉÏÊöÉÏÓθüÐÂÒÔÍâ £¬À´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾ÍŶÓÕë¶ÔÀ´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Æ½Ì¨ÌØÊâÊÇLoongArchƽ̨¾ÙÐÐÁËй¦Ð§¿ª·¢ºÍÓÅ»¯ £¬ÏêϸÈçÏ£º

 ÇкÏTCK±ê×¼

À´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Æ½Ì¨Java 17ÇéÐξ­ÓÉÑéÖ¤ÇкÏJava SE 17 £¬ÐÂÓ¦ÓóÌÐòºÍÏÖÓÐÓ¦ÓóÌÐòÎÞÐèÐ޸ļ´¿ÉÔËÐÐ  ¡£

Ö§³ÖC1±àÒëÆ÷ºÍ·Ö²ã±àÒë

C2±àÒëÆ÷£¨Server Compiler£©Ö÷ÒªÖª×ãÁËJavaÓ¦ÓõķåÖµÐÔÄÜÐèÇó £¬´Ë´ÎÐû²¼µÄLoongArch64ƽ̨ÇéÐÎÖ§³ÖC1±àÒëÆ÷£¨Client Compiler£©ºÍ·Ö²ã±àÒë £¬¿É½øÒ»²½Öª×ã¶ÔÆô¶¯ÐÔÄÜÓÐÒªÇóµÄJavaÓ¦Óà £¬ºÃ±È×ÀÃæÓ¦Óà  ¡£Í¨¹ýʵ²â £¬À´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Æ½Ì¨¿ªÆôC1ºÍ·Ö²ã±àÒëÖ®ºó £¬²¿·ÖÓ¦ÓûñµÃÁËÏÔÖøÌáÉý£ºEclipseÆô¶¯Ê±¼äïÔÌ­16.4% £¬NetBeansÆô¶¯Ê±¼äïÔÌ­20.1% £¬SPECjvm2008ÖеÄstartupÏîÌáÉý13.4% £¬DacapoÖÐluindexºÍfopÓÃʱ»®·Ö½µµÍ31.9%ºÍ29.2%  ¡£

LoongArchÏòÁ¿Ö¸ÁîÓÅ»¯

´Ë´Î°æ±¾Í¨¹ýʹÓÃLoongArchÏòÁ¿Ö¸Áî¶ÔC2±àÒëÆ÷¾ÙÐÐÁË×Ô¶¯ÏòÁ¿»¯ÓÅ»¯ £¬Í¬Ê±»¹¾ÙÐÐÁËVector APIµÄÓ²¼þÖ§³Ö  ¡£Í¨¹ýʵ²â £¬¿ªÆôÏòÁ¿ÓÅ»¯ºó £¬ÔÚLoongArch64ƽ̨ÉÏSPECjvm2008ÖеÄscimark.lu.smallÌáÉýÁË102.7% £¬JMH Microbenchmarksº¬ÓÐVectorÒªº¦×ÖµÄ168Ïî²âÊÔÖÐ £¬¼ÆÊ±Àà²âÊÔÖÐÓÐ39ÏîÓÃʱ½µµÍ1/2ÒÔÉÏ £¬ÍÌÍÂÁ¿Àà²âÊÔÖÐÓÐ26ÏîÌáÉý2±¶ÒÔÉÏ¡¢ÆäÖÐ×î¸ßÏîÌáÉýÁË200±¶ÒÔÉÏ  ¡£ 

Ö§³ÖZGC

ZGC£¨The Z Garbage Collector£© £¬ÊÇÒ»¿îµÍÑÓ³ÙÀ¬»ø½ÓÄÉÆ÷ £¬ËüµÄÉè¼ÆÄ¿µÄ°üÀ¨[3]£º

¡ñ ÑǺÁÃë¼¶×î´óÍ£ÂíÉϼä

¡ñ ÔÝͣʱ¼ä²»Ëæ¶ÑµÄ¾Þϸ¡¢´æ»î¼¯¼°¸ù¼¯µÄ¾ÞϸµÄÔöÌí¶øÔöÌí

¡ñ Ö§³Ö8MBÖÁ16TB¼¶±ðµÄ¶Ñ¾Þϸ

ͨ¹ýʵ²â £¬À´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Æ½Ì¨£¨LoongArch64£©¿ªÆôZGCºó £¬ÔÚ3C5000L˫·ÉÏSPECjbb2015 max-jOPSÌáÉý27.8% £¬critical-jOPSÌáÉý200%ÒÔÉÏ  ¡£

¼Ó½âÃÜÀàÓÅ»¯

´Ë´Î°æ±¾Í¨¹ýIntrinsics·½·¨Ê¹ÓÃLoongArch»ù´¡Ö¸Áî¶ÔSHA1¡¢SHA256¡¢AES¡¢MD5ÒÔ¼°CRC32Ïà¹ØAPI¾ÙÐÐÓÅ»¯  ¡£ÕâЩÓÅ»¯¶ÔSPECjvm2008ÖеÄcryptoµÈÏîÄ¿ÓÐÏÔÖøÌáÉýЧ¹û  ¡£

Êý×鿽±´ÓÅ»¯

´Ë´Î°æ±¾Õë¶ÔLoongArch¾ÙÐÐÁËÊý×鿽±´Ïà¹Ø²Ù×÷µÄÖØ¹¹ºÍÓÅ»¯  ¡£Í¨¹ýJMH Microbenchmarks²âÊÔÏÔʾ £¬org.openjdk.bench.java.lang.ArrayCopyÏà¹Ø²âÊÔÓÃÀýÓÅ»¯ºóƽ¾ùÖ´ÐÐʱ¼äϽµ33% £¬×î¶àÏîϽµÁË76.77% £¬SPECjvm2008ÖеÄserialÏîÓÅ»¯ºóÌáÉýÁË6%ÒÔÉÏ  ¡£

Ô­×ÓÖ¸ÁîÓÅ»¯

´Ë´Î°æ±¾Í¨¹ýʹÓÃLoongArchÔ­×ӷôæÖ¸ÁîïÔÌ­ÁËÄÚ´æÆÁÕÏÖ¸ÁîµÄʹÓà £¬¶ÔvolatileÏà¹Ø²Ù×÷ʵÏÖÁËÓÅ»¯  ¡£

ºóÆÚÍýÏë

³ýÁËÉÏÊöÓÅ»¯ÒÔÍâ £¬´Ë´ÎÐû²¼µÄ°æ±¾»¹°üÀ¨Õë¶ÔÀ´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Æ½Ì¨µÄһЩ¹ÊÕÏÐÞ¸´  ¡£ÕâЩÓÅ»¯ºÍ¹ÊÕÏÐÞ¸´ÖеIJ¿·ÖÄÚÈÝÒѼ¯³ÉÖÁÀ´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Æ½Ì¨µÍ°æ±¾JDKÖÐ £¬¸ü¶àÄÚÈÝ»áÆ¾Ö¤ÇéÐÎÂ½Ðø¼¯³ÉÖÁµÍ°æ±¾JDKÖÐ  ¡£

¡¸ÏÂÔØ·½·¨¡¹

ÏÂÔØÀ´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Æ½Ì¨Java 17ÇéÐÎ £¬ÒÔ¼°Ïàʶ¸ü¶à¹ØÓÚÀ´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾Æ½Ì¨JavaÐÅÏ¢Çë»á¼ûÀ´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾¿ªÔ´ÉçÇø£¨Ï·½µØÖ·£©

http://www.loongnix.cn/index.php/Java

²Î¿¼×ÊÁÏ£º

[1] https://www.oracle.com/cn/news/announcement/oracle-releases-java-17-2021-09-14

[2] https://www.oracle.com/java/technologies/javase/17-relnotes.html

[3] https://wiki.openjdk.java.net/display/zgc/Main

Copyright ? 2008-2022 À´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾ ¾©ICP±¸14017781ºÅ-1¾©¹«Íø°²±¸ 11010802035786 ºÅ

±¾ÍøÕ¾ÓÉÀ´Àû¹ú¼Êw66¹Ù·½ÍøÕ¾3C5000·þÎñÆ÷Ìṩǿ¾¢¶¯Á¦

ÍøÕ¾µØÍ¼