Class SystemClock
java.lang.Object
cn.xuanyuanli.core.util.snowflake.SystemClock
高并发场景下System.currentTimeMillis()的性能问题的优化
System.currentTimeMillis()的调用比new一个普通对象要耗时的多(参考:System.currentTimeMillis()性能分析)
System.currentTimeMillis()之所以慢是因为去跟系统打了一次交道
后台定时更新时钟,JVM退出时,线程自动回收
10亿:43410,206,210.72815533980582%
1亿:4699,29,162.0344827586207%
1000万:480,12,40.0%
100万:50,10,5.0%
- Author:
- lry
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final AtomicLong当前(package private) final long周期(package private) static ScheduledExecutorServicescheduledpool -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) long当前时间(package private) static SystemClockinstance()实例static longnow()当前(package private) void安排时间更新
-
Field Details
-
period
final long period周期 -
now
当前 -
SCHEDULEDPOOL
scheduledpool
-
-
Constructor Details
-
SystemClock
SystemClock(long period) 系统时钟- Parameters:
period- 期
-
-
Method Details
-
instance
实例- Returns:
SystemClock
-
scheduleClockUpdating
void scheduleClockUpdating()安排时间更新 -
currentTimeMillis
long currentTimeMillis()当前时间- Returns:
- long
-
now
public static long now()当前- Returns:
- long
-