RFC-0004:位元組單位 | |
---|---|
狀態 | 已接受 |
區域 |
|
說明 | 在 Fuchsia 中,特定標記法是用來表示位元組的倍數。如此一來,您就不需要猜出 |
變更 | |
作者 | |
審查人員 | |
提交日期 (年/月) | 2020-06-09 |
審查日期 (年/月) | 2020-07-31 |
摘要
在 Fuchsia 中,特定標記法是用來表示位元組的倍數。這無需猜測「MB」的值,可提高明確程度。
IEC 標記法將用於多個位元組 (例如 RAM、磁碟、檔案大小)。
- 指出位元組群組時,所有 Fuchsia 開發人員說明文件和工具都會以 1024 個單位 (即 2 次方數) 顯示位元組倍數。
- 標籤 KibB、1024^2 和 1024^3 分別用於 1024、1024^2 和 10B。
- 以縮寫格式描述位元組時,請一律使用「i」標記法:KB、MiB、GiB 等。第一個和最後一個字母大寫,中間的「i」一律為小寫。
- 開發人員提供的內容中,不得使用縮寫 KB、MB、GB (不論字母大小寫)。也只會使用 KB、MB 和 KB。
這些規範的適用對象為開發人員提供的內容。此 RFC 不會嘗試提供面向使用者 (行銷/銷售) 標記的準則。
提振精神
有些人會衡量位元組,也就是 2 的次方。因此,儘管 1 公里是 1,000 公尺,這些人看到的是 1024 位元組。Henkemans 另請參閱 Google 搜尋
以「SI 單位」來說,千-、mega-、giga- 等的值為 10 的次方。
KB 的兩種可能定義會對開發人員造成混淆,例如:
- 雙 65536 位元組會寫成 64 KB
- 10 次方等於 65536 位元組會寫入為 65 KB (還有一些剩餘)
由於 KiB 一律是二 (1024) 的力量,因此相同的值可以明確寫成 64 KiB。
這種差異可能會導致準確度出現大幅變動。錯誤值會隨值增加而增加。
另請參閱:維基百科
設計
所有 Fuchsia 開發人員說明文件和工具都會以 1024 個單位 (即 2 的次方) 顯示位元組倍數。
例如 65536 的大小就是 64 KiB。
實作
系統會將錯誤回報為已找到的錯誤。這類錯誤的優先順序應相對較高,並在下一個版本推出前解決。
如果迅速處理這些變更,不會因為顯示變更而感到繁瑣。然而,針對所有說明文件和工具進行全面檢查會相當麻煩。
本文件將決定使用的單位。提示:在錯誤報告中加入這個 RFC 連結以提供背景資訊。
效能
因為這項變更可能會影響其他軟體的感知效能。舉例來說,如果現有測試的評估處理量為 bytes / 1000 / time
並變更為 bytes / 1024 / time
,則即使實際效能完全相同 (即 bytes
和 time
保持不變),處理量看起來可能不太一樣。
安全性考量
如果 API 或設定接受在內部乘以 1000 的大小輸入內容,則如果變更為 1024,就會發生問題。(本寫作並不已知)。
隱私權注意事項
不會發生隱私權問題。
測試
由於建議的解決方案是存在問題的持續性錯誤和 CL 清單,因此測試將由個別 CL 的「可測試性」要求處理。
說明文件
清楚溝通是本提案的核心。發現不符合一致性問題時,說明文件將會更新,以符合此 RFC。
規範
這些規範的適用對象為開發人員提供的內容。此 RFC 不會嘗試提供面向使用者 (行銷/銷售) 標記的準則。
以縮寫格式描述位元組時,請一律使用「i」標記法:KB、MiB、GiB 等。第一個和最後一個字母大寫,中間的「i」一律為小寫。
如在不採用縮寫的情況下說明位元組,請使用 IEC 的說明,使用 kibibyte、Mibibyte、GiB 等。空白值的大寫方式會遵循美國英文或程式設計樣式指南,視情境而定。
開發人員提供的內容中,不得使用縮寫 KB、MB、GB (不論字母大小寫)。也只會使用 KB、MB 和 KB。
缺點、替代方案和未知
實作這項提案需要多少費用?
- 宣告設計選項並允許隨時間變更之後,成本將會很低,也就是同時融入審查程序和一般錯誤處理作業。
還有哪些策略可以解決相同問題?
視 OS 版本而定,某些 OS 會使用 1000 或 1024 的倍數。這些差異可能因合作夥伴協議的考量而產生,看似任一種方式 (使用 2 的次方或 10 的次方)。這在消費者端層級進行,因此不建議在開發人員層級進行。由於這個 RFC 與開發人員面向的說明文件、工具、API 等有關,因此不使用這個替代選項。
有些工具可讓您選擇以不同倍數顯示值。我們認為這項技術可說是讓這些工具顯得更複雜。
請繼續以二次方做為位元組單位 (沒有固定的「i」)。由於我們無法移除十位元組的力量,因此這並不合理。也就是說,部分讀取器不會知道每個 KB 包含多少位元組。
先前的圖片和參考資料
目前有許多先前的圖片和參考可供使用。此處列舉了一些範例,但有興趣的讀者可以透過 Google 獲得更多歷史記錄 (包括哪些公司做出了選擇,以及何時做出選擇)。這項益智問答或許深具意義,但這對 Fuchsia 而言不太可能是如此。
其他參考資料:
標準
目前有許多標準可以選擇,而這份 RFC 會從現有的許多標準中選擇一項標準。
範例
- IEC 推出 KiB、MiB、GiB...
- JEDEC 會將位元組單位明確定義為底數 2
- 有些製造商甚至會使用混合標記,例如 1024 * 1000 的 MB。
- 某些 OS 使用 1000 的倍數,部分使用 1024 的倍數
- 有些標準會根據主題是 RAM 還是磁碟儲存空間,而採用不同的標準
比起嘗試導入其他標準或一組規則,本提案並未採用 IEC 準則,在 1024 的倍數中,在所有與開發人員使用的文件、工具、API 等項目中都會計算位元組的倍數。