在我的应用系统中,很多地方都需要用到序列化和反序列化,不知序列化、反序列化效率怎么样?

解决方案 »

  1.   

    序列化和反序列化一般和压缩或存贮配合使用,具体是否需要和具体环境有关:
    1、程序架构
    如果是富客户端的话,数据一般不做序列化和压缩的,否则服务器会占用很大的资源
    2、网络环境
    如果服务器和客户端的网络带宽并不好,例如使用EDGE通讯,这就要求对数据进行序列化后压缩。
    3、数据大小
    如果数据本身很小,序列化然后压缩,再反序列化的时间比直接发送还长,则不可取。如果数据本身很大,而网络情况很好的话,可以不序列化,相反需要序列化。我以前做个一个测试,10万条数据的DATASET大约20M,使用压缩后比不压缩快80%多,但是如果100万条,后果是非常慢,因为网络本身是不错的。以上3点需要进行综合判定,具体是否需要使用需要程序员自己进行测试二者之间优劣,然后指定相应的算法,对程序进行优化。
      

  2.   

    经常使用的数据通过cache等缓存,实现缓存依赖
      

  3.   

    一个引用对象你把他缓存了,以后很多地方使用起来都会是同一个对象。这样可能产生很多共享问题。最好是把它序列化为一个btye[],然后缓存该btye[]。使用的时候再反序列化!