Udemy Course Multithreading, Concurrency & Performance 17

Metrics Example

ZONGRU Li
Aug 31, 2021

在正式環境運行時,時常需要針對特定邏輯做持續時間的平均計算

大略邏輯如下:

以下將依步驟製作簡單的Metrics範例,首先完成以下

在理解以上邏輯後,需特別注意紅框部分

在Mult-Thread情況,很多Thread都會同時進到紅框的計算,會打亂計算

所以要特別加上synchronized,並且average因為是double

同前一節介紹也要加上volatile避免複數thread進到average的計算

接著在別處建立商業邏輯BusinessLogic的class並注入Metrics class

裡面特別有個while讓商業邏輯假裝循環多次運算

在來製作另一個class專門依間隔時間印出當前的Metrics物件的average數值

從旁觀察經過BusinessLogic循環運算後average數值的變化

最後在寫個main,並建立兩個BusinessLogic物件模擬兩個Threads做邏輯處理

及一個MetricsPrinter物件來計算回應是否快速

實際運行:

運行過程會看到類似如下數值一直跳出:

大約都是5.多

上面顯示的也就是蒐集到的Atomic邏輯運算平均的時間Metrics

可以當作邏輯處理上Performance的參考依據

上述完整Code如下:

參考課程

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet