public static int KB = 1024;
public static int MB = 1024 * KB;
private static final int CAPACITY_SMALL = 4 * KB;
private static final int CAPACITY_MEDIUM = 128 * KB;
private static final int CAPACITY_LARGE = 1024 * KB;
//package scope (default) - so they can be accessed from unit tests.
byte[] smallMessageBuffer = new byte[1024 * 4 * KB]; //1024 x 4KB messages = 4MB.
byte[] mediumMessageBuffer = new byte[128 * 128 * KB]; // 128 x 128KB messages = 16MB.
byte[] largeMessageBuffer = new byte[16 * 1 * MB]; // 16 * 1MB messages = 16MB.
經(jīng)??匆娋彺娴拇笮《际且晕坏拇笮《x,是因為習(xí)慣,還是因為什么原因?在實際項目中是否有什么策略根據(jù)自己需求來定義最優(yōu)的值來處理IO?
2 回答

九州編程
TA貢獻1785條經(jīng)驗 獲得超4個贊
緩存大小什么單位純粹是個人喜好,最后都是化為以字節(jié)為單位。緩存越大,傳輸大數(shù)據(jù)量效率會更高,因為循環(huán)次數(shù)減少了;相應(yīng)的如果每次實際傳輸?shù)臄?shù)據(jù)量大大小于緩存大小,比如只用到緩存大小的 1/10,那就有點浪費內(nèi)存了,當(dāng)然內(nèi)存不敏感(比如多用個 1~2 MB 完全可以接受)的情況下無所謂。

ABOUTYOU
TA貢獻1812條經(jīng)驗 獲得超5個贊
第一個問題:你給出的代碼都是以字節(jié)而不是位來定義緩存大小的;
第二個問題:通常操作系統(tǒng)都提供了帶緩存的IO操作(IO流接口),如果在實際使用中通過測試發(fā)現(xiàn)瓶頸在IO,再考慮實現(xiàn)自己的IO緩存,
添加回答
舉報
0/150
提交
取消