亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么計數器是 double 而不是 long?

為什么計數器是 double 而不是 long?

侃侃爾雅 2023-08-16 18:21:47
千分尺計數器是雙精度計數器而不是長計數器的動機是什么?用戶是否有理由計算部分更改?當計數超過尾數的大小(我認為約為 20 億)后,它如何繼續測量增量?更新:?有人指出 double 的精度為 9 千萬億,而不是 20 億。這樣可以騰出更多空間。
查看完整描述

1 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

計數器采用雙精度而不是長整數有多種原因。與任何架構一樣,它會平衡權衡。

與底層指標庫的最大兼容性

Micrometer 是其他度量框架的外觀,double是最通用的選項。

例如,普羅米修斯使用雙精度計數器,并通過堅持使用相同的類型,最大限度地提高兼容性。

Prometheus 使用 s 的另一個原因double是在內部將所有指標視為相同,從而簡化其架構并優化其性能和內存利用率。盡管這是一個不同的討論主題。

測量部分變化

雖然大多數計數器用途是遞增單個事件。在測量其他內容(例如接收的字節數、處理的行數等)時,計數器仍然是一個可行的選擇。盡管這些示例都不是部分計數。它不會阻止用戶提出想要測量部分計數的用例。一個例子可能是“處理所花費的秒數”,因為部分秒數在計算中非常常見。有些系統會測量整個單位,例如毫秒或納秒,接下來讓我們介紹一下。

最大精度

double 類型提供更高的精度。雖然這聽起來可能違反直覺,但請耐心聽我說??梢栽谟嫈灯髦袦y量的一些持續時間是執行某些任務所花費的總時間。垃圾收集、數據庫處理等。其中一些事件需要納秒。雖然我不推薦使用 Micrometer 作為分析器的替代品,但測量小時間單位會引起混亂。

如果注冊表要對所有測量值進行納秒標準化,那么 a 的數量級long(長整型中的 9 千萬億與雙精度中的 9 千萬億)無論如何都會耗盡長整型的額外精度。

您會注意到,Micrometer 使用雙精度數來測量計時器的總持續時間,該指標的優點在于它實際上是其核心的計數器(單調遞增的數字)。

雙人間足夠大

我記得做了一些粗略的數學計算,如果計數器正在測量單個事件,這意味著它可以在 20,000 多年的時間內每秒測量 10,000 個事件,并且不會開始失去精度。

因此,當然存在一些需要注意的限制,但考慮到系統需求的預期double就足夠了。


查看完整回答
反對 回復 2023-08-16
  • 1 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號