getCacheId()获取config_global,它会把这个缓存加载进来。所以从缓存拿回来的_xml只是一部分,这才解释了本文刚开始遇到的疑问。可是新疑问又来了,既然是部分配置,那么如何获取店铺的配置呢? 首先是获取配置的用法:
进入getNode()方法就可以看到,它根据第一个字段,相应的从缓存中取出缓存的内容。注意,其它获取配置的包装方法,都是间接使用getNode()方法,比如Mage::getStoreConfig()方法,实际调用Mage_Core_Model_Store的getConfig方法,而这个方法内部就是调用getNode:
最后总结一下Magento中使用cache的方法:
来一段测试程序:
这种缓存的功能是ZF提供的。对于全局配置文件,如果不缓存,每次都读取合并很多文件,这个过程将产生大量的IO,如果缓存了,将可以减少大部分的IO操作和减少计算资源,但是还是要把缓存读入内存,如果能够把这些缓存放入共享内存中,理论上应该可以提升性能(减少了从磁盘调人内存这个IO操作,所以把缓存放入磁盘和放入共享内存,性能提升不明显的原因就在这里),如缓存已经在内存中,不用每次都调用文件写入内存,但是获取缓存转换成PHP对象仍然占有比较多内存,所以Magento是很非常耗内存,并发一多,就会很明显。 (责任编辑:最模板) |