@benchmarkmode(mode.throughput)@outputtimeunit(timeunit.microseconds)
@state(scope.benchmark)
public
class
testmap_jmh
}@benchmark
public
void
hashmapget()
@benchmark
public
void
synmapget()
@benchmark
public
void
conmapget()
@benchmark
public
void
hashmapsize()
@benchmark
public
void
synmapsize()
@benchmark
public
void
conmapsize()
public
static
void
main(string args)
catch
(runnerexception e) }}
benchmark mode cnt score error unitstestmap_jmh.conmapget thrpt 10 178.179 ± 17.030 ops/us
testmap_jmh.conmapsize thrpt 10 777.735 ± 35.146 ops/us
testmap_jmh.hashmapget thrpt 10 168.352 ± 7.346 ops/us
testmap_jmh.hashmapsize thrpt 10 1434.474 ± 36.197 ops/us
testmap_jmh.synmapget thrpt 10 40.580 ± 1.227 ops/us
testmap_jmh.synmapsize thrpt 10 44.711 ± 1.657 ops/us
使用了兩個執行緒進行測試,由於hashmap完全不關心執行緒安全,所以他的效能是最好的。hashmap經過同步的包裝後,效能出現了急劇的下降。
concurrenthashmap的get方法和hashmap的get方法效能近似。
C 例項化物件的三種方式及效能對比
做專案過程中有個需求要例項化兩萬個物件並新增到list中,這個過程大概需要1min才能載入完 傳參較多 於是開啟了 優化之旅,再此記錄。首先想到的是可能例項化比較耗時,於是開始對每種例項化方式進行測試,過程如下 1 用 new 關鍵字例項化乙個類 2 用 activator 例項化乙個類 3 用 a...
詳解C 例項化物件的三種方式及效能對比
做專案過程中有個需求要例項化兩萬個物件並新增到list 中,這個過程大概需要1min才能載入完 傳參較多 於是開啟了 優化之旅,再此記錄。首先想到的是可能例項化比較耗時,於是開始對每種例項化方式進行測試,過程如下 1 用 new 關鍵字例項化乙個類 2 用 activator 例項化乙個類 3 用 ...
資料倉儲專案之 三種事實表的差異對比
三種基本表的型別 事物事實表 週期快照事實表 累計快照事實表 名稱事物事實表 週期快照事實表 累積快照事實表 週期離散事物時間點 以有規律的 可 的間隔產生快照 用於時間跨度不確定的不斷變化的流水線 工作線 粒度每個事物或者事務線的一行 每個快照週期加上其它維度的一行 每次管道事件的一行 日期維度 ...