亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 4044 | 回復(fù): 1
打印 上一主題 下一主題

計(jì)算Java Serializable對(duì)象大小的方法 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-01-23 01:00 |只看該作者 |倒序?yàn)g覽

                  在Cahce的設(shè)計(jì)中,一般會(huì)考慮兩種對(duì)象管理方法,一是按對(duì)象大小,比如開一個(gè)10M字節(jié)的cahce空間。另外一個(gè)是按對(duì)象的數(shù)量,比如1000個(gè)對(duì)象的cache空間。
  對(duì)于按對(duì)象尺寸管理的cache,由于Java對(duì)象的實(shí)際內(nèi)存大小不好獲得(我是不知道如何計(jì)算的),所以一般就使用一個(gè)Serializable對(duì)象的序列化尺寸來代替,序列化時(shí)通常把一個(gè)對(duì)象序列化到一個(gè)字節(jié)buffer里,那么就可以獲得這個(gè)buffer的字節(jié)數(shù)。今天,在工作中,突軟想到這樣做太浪費(fèi)空間,看了Java的ObjectOutputStream這個(gè)類的源碼,發(fā)現(xiàn)也可以如下做,只計(jì)數(shù),不產(chǎn)生字節(jié)轉(zhuǎn)移,那么就不會(huì)耗費(fèi)內(nèi)存空間了。
               
               
                public final class SizeCalculator {
    public static int calcSize(java.io.Serializable o) {
        int ret = 0;
   
        class DumbOutputStream extends OutputStream {
               int count = 0;
               public void write(int b) throws IOException {
                count++; // 只計(jì)數(shù),不產(chǎn)生字節(jié)轉(zhuǎn)移
               }
        }
        DumbOutputStream buf = new DumbOutputStream();
        ObjectOutputStream os = null;
        try {
               os = new ObjectOutputStream(buf);
               os.writeObject(o);
               ret = buf.count;
        } catch (IOException e) {
              // No need handle this exception
              e.printStackTrace();
              ret = -1;
        } finally {
             try {
               os.close();
             } catch (Exception e) {
              }
        }
        return ret;
    }
    public static void main(String[] args){
        System.err.println(calcSize(1));
    }

               
               

本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/29188/showart_2158201.html

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-01-29 09:25 |只看該作者
你剛發(fā)表了6天就被我用了,頂一個(gè)
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP