这种Cache方式可行吗?

cd3
03-05-15 4 158

我把对象序列化到硬盘上,然后读取时先到硬盘上读取,如果没有就到数据库中读取并序列化到硬盘上。这种方法可行吗?
多谢!

panan
2003-05-25 22:15

这样Cache不行吧,放到内存还差不多,放在磁盘上不行吧。

hegong121
2003-05-27 13:07

将对象序列化到磁盘的形式来缓冲数据也可以算是一种性能优化策略,但在使用时需要注意其应用范围。
首先,这种策略不适合简单对象。对于简单对象,从磁盘读取到反序列化对象都是耗时的操作,而且还要注意对象与数据库中数据的一致性,可谓得不偿失。但对于那些生成过程需要耗费大量的资源的复杂对象(比如报表对象)使用该策略,则可以从中获得好处。因为磁盘读取与反序列化的花费较之生成过程可以忽略不计。
其次,这种策略不适合变化频繁的对象。就像上面所述,对象必须与数据库中数据的一致,如果数据经常发性变化,使用该策略也没有大的意义。
这种策略的应用之一是系统菜单对象的生成,通常菜单用树结构存储且不常变化,原来从数据库中生成菜单对象时,需要用递归来生成树,相当耗时。采用该策略后,的确起到了立竿见影的效果。
因此,这种方法是可行的,但要用在适当的时候。

hegong121
2003-06-05 20:35

各位有什么看法?
UP

bruce
2003-06-05 21:00

觉得您说的挺对的,只不过没有其它意见,以后多多交流!