RFC-0004:位元組單位 | |
---|---|
狀態 | 已接受 |
區域 |
|
說明 | 在 Fuchsia 中,特定符號用於表示位元組的倍數。這樣一來,您就不需要猜測 |
Gerrit 變更 | |
作者 | |
審查人員 | |
提交日期 (年-月-日) | 2020-06-09 |
審查日期 (年-月-日) | 2020-07-31 |
摘要
在 Fuchsia 中,特定符號用於表示位元組的倍數。這樣一來,您就不需要猜測「MB」的值,可提高資訊的清晰度。
IEC 標記法會用於位元組的倍數 (例如 RAM、磁碟、檔案大小)。
- 在表示位元組群組時,所有 Fuchsia 開發人員說明文件和工具都會以 1024 個單位 (即 2 的冪) 呈現位元組的倍數。
- 標籤 kibibyte、mebibyte、gibibyte 分別用於 1024、1024^2 和 1024^3。
- 描述位元組時,請一律使用「i」符號:KiB、MiB、GiB 等。開頭和結尾的字母要大寫,中間的「i」則一律小寫。
- 開發人員專用資料中不會使用 KB、MB、GB 等縮寫字 (不論字母大小寫)。也不會使用千位元、兆位元、千兆位元。
這些規範適用於開發人員相關的素材。本 RFC 不會提供使用者面向 (行銷/銷售) 符號的規範。
提振精神
有些人會以 2 的冪次為單位來測量位元組。因此,雖然 1 公里等於 1,000 公尺,但這些人會將 1 千位元組視為 1,024 位元組。Henkemans 另請參閱 Google 搜尋
在 SI 單位中,kilo-、mega-、giga- 等值是 10 的冪。
千位元組的兩種可能定義會讓開發人員感到困惑,例如:
- 以 2 的冪為單位,65536 個位元組會寫為 64 KB
- 以十的冪為單位,65536 位元組會寫成 65 KB (並保留一些位元組)
同樣的值可以明確寫為 64 KiB,因為 KiB 一律是 2 的冪 (1024)。
這項差異可能會導致準確度大幅偏離。錯誤率會隨著值的增加而增加。
另請參閱:維基百科
設計
所有 Fuchsia 開發人員說明文件和工具都會以 1024 個單位 (即 2 的冪) 呈現位元組的倍數。
例如,65536 的大小精確為 64 KiB。
實作
我們會在發現錯誤時提交。這些錯誤應給予較高的優先順序,並在下一個版本推出前解決。
我們預期這些變更不會造成負擔,只要在出現時迅速處理即可。不過,全面檢查所有說明文件和工具可能會很麻煩。
這份文件將用於決定要使用的單位。提示:在提交的錯誤中加入此 RFC 的連結,以提供背景資訊。
成效
這項變更可能會影響其他軟體的效能。舉例來說,如果現有測試評估的總處理量為 bytes / 1000 / time
,但變更為 bytes / 1024 / time
,則總處理量可能會減少,但實際效能仍相同 (也就是 bytes
和 time
未變更)。
安全性考量
如果 API 或設定接受的大小輸入值在內部乘以 1000,則如果將該值變更為 1024,可能會發生問題。(截至本文撰寫時,尚未發生這種情況)。
隱私權注意事項
不會造成任何隱私權問題。
測試
由於提出的解決方案是持續的錯誤清單,以及在發現問題時的 CL,因此測試將由個別 CL 的可測試性規定處理。
說明文件
清楚的溝通是此提案的核心。一旦發現不符合 RFC 的問題,我們就會更新說明文件。
規範
這些規範適用於開發人員相關的素材。本 RFC 不會提供使用者面向 (行銷/銷售) 符號的規範。
以縮寫形式描述位元組時,請一律使用「i」符號:KiB、MiB、GiB 等。開頭和結尾的字母要大寫,中間的「i」則一律小寫。
如要描述不含縮寫的位元組,請使用 IEC 所述的 kibibyte、mebibyte、gibibyte 等單位。不縮寫的值會根據上下文,採用美式英文或程式設計風格指南的大小寫規則。
開發人員專用資料中不會使用 KB、MB、GB 等縮寫字 (不論字母大小寫)。也不會使用千位元、兆位元、千兆位元。
缺點、替代方案和未知事項
實施這項提案的成本為何?
- 只要宣告設計選擇並允許隨時間變更,成本就會降低 (也就是融入審查程序和一般錯誤處理程序)。
還有哪些策略可以解決同樣的問題?
部分作業系統會使用 1000 或 1024 的倍數,具體取決於作業系統版本。差異可能源自合作夥伴協議,且兩者都會出現 (使用 2 次方或 10 次方)。這會發生在面向消費者的層級,而非開發人員層級。由於本 RFC 與開發人員面向的說明文件、工具和 API 等相關,因此不會使用這個替代方案。
部分工具可讓您選擇以不同倍數顯示值。我們認為這會不必要地使這些工具變得複雜。
繼續使用位元組的二進位冪 (不含「i」中綴)。這麼做並不合理,因為我們無法移除以十為底的位元組用法。也就是說,部分讀者仍不清楚 1 KB 有多少位元組。
既有技術與參考資料
有許多先前技術和參考資料可供使用。我們在此列出一些例子,但有興趣的讀者可以輕鬆在 Google 上查詢更多相關歷史資料,包括哪些公司做出哪些選擇,以及何時做出這些選擇。這可能只是有趣的瑣事,但不太可能與 Fuchsia 的這項提案有關。
其他參考資料:
標準
有多種標準可供選擇,而本 RFC 會從眾多標準中選擇一項。
範例
- IEC 推出 KiB、MiB、GiB...
- JEDEC 明確將位元組單位定義為 2 進位
- 有些製造商甚至使用混合標記法,例如 1024 * 1000 代表 1 MB。
- 有些作業系統會使用 1000 的倍數,有些則會使用 1024
- 有些標準會因主題是 RAM 或磁碟儲存空間而不同
這項提案並未嘗試引入其他標準或一組規則,而是建議在所有面向開發人員的文檔、工具、API 等中,使用 IEC 指南,以 1024 為倍數計算位元組。