You are here

Think in Drupal 第3集 关于Views性能的一段话(仅供参考)

g089h515r806 的头像
Submitted by g089h515r806 on 星期五, 2012-09-21 02:01

很多中国的Drupal开发者,经常受到各种各样的误导。打个不恰当的比方,Drupal就像一头大象,Drupal初学者就像是瞎子,很多人刚学Drupal,摸到了大象的一小部分,便自以为了解了Drupal的全部,自诩为专家,误导一些后来人。其中的一个观点,就是Views的性能比较差劲,鼓动别人,在Drupal项目中,千万别用Views,否则会带来性能灾难,难以维护,云云。
如果我们不使用Views的话,单纯使用Drupal,那会怎样?首先你无法搭建电子商务网站,因为无论Ubercart、Commerce都是基于Views的;你不能够搭建包含小组功能的社区网站,因为OG的很多功能都是基于Views的;你不能使用高级论坛模块,因为高级论坛的很多功能也是基于Views的;最好也不使用Panels,Ctools这样的模块,因为没有了Views,Panels发挥不出来自己的作用,既然Panels、Views都不用了,还用Ctools做什么,它们三个本来就是一个人写的;再往下,是Feeds不能用,Entity reference不能用,你会发现,将近一半的模块都不能用了,Drupal还能做什么?Drupal除了搭建一个博客,一个几个页面的企业网站以外,还能做什么?
问题是自己写的代码真的有Views跑的快么?我看未必吧,或许只有比较比较,才能见分晓。我见过一些人写的代码,就是可以使用views做出来,但是要坚持自己写代码的,代码写的垃圾一样,没有注释,效率也不高,网站慢的要死。可以肯定的说,大部分人写出来的代码,都没有Views生成出来的快,因为Views带了缓存机制,而大部分人在自己写代码的时候,是不会考虑缓存的。
假定程序员的技术很高了,写的很棒了,同样的功能,自己写程序,运行10ms,就成功了,使用了views,运行一次可能需要30ms;因此说,自己写程序,比views跑的快,看起来也说得通;但是把这个程序运行10次100次,从运行第二次的时候开始,缓存的价值就体现了出来,自己写的每次运行都需要10ms,但是Views生成的,每次运行只需要1ms,因为Views加了缓存。现在,再来比较性能,你会发现,这些自诩为专家的人的观点,是多么的可笑,误人子弟啊。
有多少人,会为自己的代码中加上高效的缓存机制?有多少人会在实际的项目中,手动的加缓存,缓存机制比Views的缓存机制高效?如果有人能够做到这些,那么他站出来说,写代码的效果高,他们的项目对性能有苛刻的要求,Views满足不了他们的需求,如果真有这样的人,我是信服的,但是这样的人存在么?我的意思是说,在我们的平时工作中,存在这么厉害的人么?