// ĠCopyright Ġ( c ) Ġ 2 0 1 9 - 2 0 2 0 ĠDrag on K night Of B reeze ĠWin dea Ċ // ĠB reeze Ġis Ġblow ing ... Ċ Ċ package Ġic u . win dea . b reeze framework . serialization Ċ Ċ import Ġjava . io .* Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent .* Ċ import Ġkotlin . system .* Ċ import Ġkotlin . test .* Ċ Ċ class ĠString Test Ġ{ Ċ ĉ // 7 9 2 5 4 2 0 1 Ċ ĉ // 9 4 7 0 0 0 0 Ċ ĉ // 1 1 8 5 4 1 0 0 Ċ ĉ // 1 5 6 3 9 8 4 0 0 Ċ ĉ @ Test Ċ ĉ fun Ġbuild String Test () Ġ{ Ċĉ ĉ val Ġuuid Ġ= ĠUUID . randomUUID (). toString () Ċĉ ĉ measure Nano Time Ġ{ Ċĉĉ ĉ val Ġbuffer Ġ= ĠStringBuilder () Ċĉĉ ĉ repeat ( 1 0 ) Ġ{ Ċĉĉĉ ĉ buffer . append ( uuid ) Ċĉĉ ĉ } Ċĉ ĉ }. also Ġ{ Ġprintln ( it ) Ġ} ĊĊĉ ĉ measure Nano Time Ġ{ Ċĉĉ ĉ val Ġbuffer Ġ= ĠString Writer () Ċĉĉ ĉ repeat ( 1 0 ) Ġ{ Ċĉĉĉ ĉ buffer . append ( uuid ) Ċĉĉ ĉ } Ċĉ ĉ }. also Ġ{ Ġprintln ( it ) Ġ} ĊĊĉ ĉ measure Nano Time Ġ{ Ċĉĉ ĉ var Ġstr Ġ= Ġ"" Ċĉĉ ĉ repeat ( 1 0 ) Ġ{ Ċĉĉĉ ĉ str Ġ+= Ġuuid Ċĉĉ ĉ } Ċĉ ĉ }. also Ġ{ Ġprintln ( it ) Ġ} ĊĊĉ ĉ measure Nano Time Ġ{ Ċĉĉ ĉ val Ġbuffer Ġ= ĠStringBuilder () Ċĉĉ ĉ repeat ( 1 0 0 0 0 ) Ġ{ Ċĉĉĉ ĉ buffer . append ( uuid ) Ċĉĉ ĉ } Ċĉ ĉ }. also Ġ{ Ġprintln ( it ) Ġ} ĊĊĉ ĉ measure Nano Time Ġ{ Ċĉĉ ĉ val Ġbuffer Ġ= ĠString Writer () Ċĉĉ ĉ repeat ( 1 0 0 0 0 ) Ġ{ Ċĉĉĉ ĉ buffer . append ( uuid ) Ċĉĉ ĉ } Ċĉ ĉ }. also Ġ{ Ġprintln ( it ) Ġ} ĊĊĉ ĉ measure Nano Time Ġ{ Ċĉĉ ĉ var Ġstr Ġ= Ġ"" Ċĉĉ ĉ repeat ( 1 0 0 0 0 ) Ġ{ Ċĉĉĉ ĉ str Ġ+= Ġuuid Ċĉĉ ĉ } Ċĉ ĉ }. also Ġ{ Ġprintln ( it ) Ġ} Ċ ĉ } ĊĊ ĉ // 1 : Ġ 1 9 0 1 6 6 8 3 0 0 Ċ ĉ // 2 : Ġ 1 7 7 2 5 8 4 0 0 Ċ ĉ // 2 : Ġ 7 2 1 8 4 8 0 0 Ċ ĉ @ Test Ċ ĉ fun Ġmap ToArray Async Test () Ġ{ Ċĉ ĉ // å¹¶ åıĳ map ä¸įä¼ļ æľī çº¿ç¨ĭ æķ°æį® åı¯ è§ģ æĢ§ éĹ®é¢ĺ ï¼Į ä¸įéľĢè¦ģ ä½¿çĶ¨ volatile æĪĸ Thread Local Ċĉ ĉ // çº¿ç¨ĭ æķ°éĩı è¿ĩ å¤ļ ï¼Į éĢŁåº¦ ä¼ļ æĺİ æĺ¾ ä¸ĭ éĻį ĊĊĉ ĉ val Ġn Ġ= Ġ 1 0 0 0 Ċĉ ĉ val Ġuuid Ġ= ĠUUID . randomUUID (). toString () Ċĉ ĉ run Ġ{ Ċĉĉ ĉ val Ġarray Ġ= ĠarrayOf Null s < String >( n ) Ċĉĉ ĉ measure Nano Time Ġ{ Ċĉĉĉ ĉ repeat ( n ) Ġ{ Ċĉĉĉĉ ĉ array [ it ] Ġ= Ġuuid Ċĉĉĉ ĉ } Ċĉĉ ĉ }. also Ġ{ Ġprintln (" 1 : Ġ$ it ") Ġ} Ċĉ ĉ } Ċĉ ĉ run Ġ{ Ċĉĉ ĉ val Ġarray Ġ= ĠarrayOf Null s < String >( n ) Ċĉĉ ĉ val Ġexecutor Ġ= ĠExec utors . new Fixed ThreadPool ( 6 4 ) Ċĉĉ ĉ measure Nano Time Ġ{ Ċĉĉĉ ĉ repeat ( n ) Ġ{ Ċĉĉĉĉ ĉ executor . submit Ġ{ Ċĉĉĉĉĉ ĉ array [ it ] Ġ= Ġuuid Ċĉĉĉĉ ĉ }. get () Ċĉĉĉ ĉ } Ċĉĉ ĉ }. also Ġ{ Ġprintln (" 2 : Ġ$ it ") Ġ} Ċĉ ĉ } Ċĉ ĉ run Ġ{ Ċĉĉ ĉ val Ġarray Ġ= ĠarrayOf Null s < String >( n ) Ċĉĉ ĉ val Ġexecutor Ġ= ĠExec utors . new Fixed ThreadPool ( 2 5 6 ) Ċĉĉ ĉ measure Nano Time Ġ{ Ċĉĉĉ ĉ repeat ( n ) Ġ{ Ċĉĉĉĉ ĉ executor . submit Ġ{ Ċĉĉĉĉĉ ĉ array [ it ] Ġ= Ġuuid Ċĉĉĉĉ ĉ }. get () Ċĉĉĉ ĉ } Ċĉĉ ĉ }. also Ġ{ Ġprintln (" 3 : Ġ$ it ") Ġ} Ċĉ ĉ } Ċĉ ĉ run Ġ{ Ċĉĉ ĉ val Ġarray Ġ= ĠarrayOf Null s < String >( n ) Ċĉĉ ĉ val Ġexecutor Ġ= ĠExec utors . new Work Ste aling Pool ( 6 4 ) Ċĉĉ ĉ measure Nano Time Ġ{ Ċĉĉĉ ĉ repeat ( n ) Ġ{ Ċĉĉĉĉ ĉ executor . submit Ġ{ Ċĉĉĉĉĉ ĉ array [ it ] Ġ= Ġuuid Ċĉĉĉĉ ĉ }. get () Ċĉĉĉ ĉ } Ċĉĉ ĉ }. also Ġ{ Ġprintln (" 4 : Ġ$ it ") Ġ} Ċĉ ĉ } Ċĉ ĉ run Ġ{ Ċĉĉ ĉ val Ġarray Ġ= ĠarrayOf Null s < String >( n ) Ċĉĉ ĉ val Ġexecutor Ġ= ĠExec utors . new Work Ste aling Pool ( 2 5 6 ) Ċĉĉ ĉ measure Nano Time Ġ{ Ċĉĉĉ ĉ repeat ( n ) Ġ{ Ċĉĉĉĉ ĉ executor . submit Ġ{ Ċĉĉĉĉĉ ĉ array [ it ] Ġ= Ġuuid Ċĉĉĉĉ ĉ }. get () Ċĉĉĉ ĉ } Ċĉĉ ĉ }. also Ġ{ Ġprintln (" 5 : Ġ$ it ") Ġ} Ċĉ ĉ } Ċĉ ĉ run Ġ{ Ċĉĉ ĉ val Ġarray Ġ= ĠarrayOf Null s < String >( n ) Ċĉĉ ĉ val Ġexecutor Ġ= ĠExec utors . new Work Ste aling Pool ( 2 5 6 ) Ċĉĉ ĉ measure Nano Time Ġ{ Ċĉĉĉ ĉ repeat ( n ) Ġ{ Ċĉĉĉĉ ĉ executor . submit Ġ{ Ċĉĉĉĉĉ ĉ array [ it ] Ġ= Ġuuid Ċĉĉĉĉ ĉ }. get () Ċĉĉĉ ĉ } Ċĉĉ ĉ }. also Ġ{ Ġprintln (" 5 : Ġ$ it ") Ġ} Ċĉ ĉ } Ċĉ ĉ run Ġ{ Ċĉĉ ĉ val Ġa Ġ= ĠThread Local . with Initial Ġ{ ĠarrayOf Null s < String >( n ) Ġ} Ċĉĉ ĉ val Ġarray Ġ= Ġa . get () Ċĉĉ ĉ val Ġexecutor Ġ= ĠExec utors . new Work Ste aling Pool ( 2 5 6 ) Ċĉĉ ĉ measure Nano Time Ġ{ Ċĉĉĉ ĉ repeat ( n ) Ġ{ Ċĉĉĉĉ ĉ executor . submit Ġ{ Ċĉĉĉĉĉ ĉ array [ it ] Ġ= Ġuuid Ċĉĉĉĉ ĉ }. get () Ċĉĉĉ ĉ } Ċĉĉ ĉ }. also Ġ{ Ġprintln (" 5 : Ġ$ it ") Ġ} Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ @ Test Ċ ĉ fun Ġjoin ToString Test () Ġ{ Ċĉ ĉ val Ġarray Ġ= ĠArray ( 1 0 0 0 ) Ġ{ Ġit Ġ* Ġ 1 0 Ġ} Ċĉ ĉ println ( measure Nano Time Ġ{ Ċĉĉ ĉ array . join ToString (", Ġ") Ġ{ Ġ( it Ġ* Ġ 3 Ġ/ Ġ 5 Ġ+ Ġ 2 ). toString (). repeat ( 2 ) Ġ} Ċĉ ĉ }) Ċ ĉ } Ċ } Ċ