代码改变世界

又见ORM跑分 —— 对ORM跑分的吐嘈

2013-06-09 00:26  麦舒  阅读(2457)  评论(48编辑  收藏  举报

又见ORM跑分了,说实在的,这个ORM的跑分有意义么?而且还围观者众,喜欢看热闹的人还真是不少呀。

经常见到不少人,在吹某个ORM的性能如何、如何地好,然后再辅以几个单元测试的跑分来佐证,和咱天朝的山寨手机吹嘘性能好,价格便宜有何两样?甚至连山寨手机都比不上,起码山寨手机,还敢收钱!

我们都知道,简衡量一个手机的好坏,不仅是性能,还包括屏幕、散热、做工、服务等等。同样,衡量一个ORM的好坏,不仅是性能。事实上,ORM的性能,对整个系统的影响是很小的,真正的大头是在IO那一块,并且差距是几何级别的。如果一个ORM不好使,需要多查了一次数据库,无论你如何去优化,算法如何出色,总体查询时间都要大于少查一次的ORM。

衡量一个ORM的好坏,还应该包括:

1、易用性,必须在10分钟之内能够让用户上手。

2、稳定性,能够经得起时间的验证。

3、具有强大的查询功能,包括 Linq 查询,ESQL 查询。

4、符合微软制定的标准。因为我们都是用微软的产品,符合微软的标准,不但可以让产品更加通用,并且能够降低用户的学习成本。

可以说,使用ORM的人,都不会太在意性能,他们都期待的是一款ORM足够好使,能尽可能地缩短产品的开发周期,只要性能不差得离谱都能接受。起码,我从来没有听过有哪个用户报怨 ALinq 性能差的。在意性能的,是不会使用 ORM 的,使用什么?存储过程!事实上,很多大型的软件都是采用 ORM + 存储过程。

现在的CPU不是性能不足,而是性能过剩,所以你可以看到现在的CPU研发方向,不是以性能为主,而是强调能耗比。在连手机CPU 都4核普及,迈向8核的今天,对于ORM来说,还有必要纠结于性能吗?真正的大头在 IO 呢。

如果真的想做产品,就应该踏踏实实地去沉下心去做研究,用你的产品、服务去打动你的用户,有了好的产品,再去宣传才会有好的效果。靠一些噱头来吸引用户,是没有用的,客户都不傻,没有好的产品作为支撑,必定会让用户抛弃,而且口碑也没了,在圈子里混,口碑就是你的品牌。

有好多朋友,都问我,现在那么多开源免费的ORM,他们为什么不使用EF、NH这么免费开源而要用你的 ALinq ?

一、服务周到。用EF、NH的,出了问题,你能找得到作者来问吗?用 ALinq 的,只要你愿意付钱,半夜三更打电话把我叫起也没关系。

二、产品好使,易于上手,性能稳定。感兴趣的可以下载,把文档看看,试用一下,我保证你会立马喜欢上它的。

三、总有不差那点钱的公司,几千块钱,也就是打个报告申请一下的事情。

 

另外做个预告

我现在准备动手写个长篇系列文章,内容是关于Linq to SQL的,和市面上文章的不同的地方是,我会基于设计的角度去写,让你深入地了解Linq to SQL的运行机制,以及设计准则,一定会让研究架构的朋友大呼过瘾。感兴趣的朋友,可以关注我的腾讯微博。 

 

好了,不多说了,准备睡觉了,有啥明天再说。