在很多大型网站的终极架构中都会有用c或c++写的模块,例如memcached,FastDFS,toyota TT等等。而更令微软程序员们郁闷的是这些类库往往都是在linux或者unix机器上经受过大量的性能和稳定性测试,而在windows的服务器上是否稳定,是否可以施展其高性能,就是一个未知数;例如据说将memcached server装在windows server上虽然可以装的上,但是却不是那么高效,还有可能会不稳定,所以我们公司用的memcached server只好部署在linux上。还有一点这些高性能,分布式系统或模块提供客户端的时候也往往是先提供php,java的,最后才出.net的,有的甚至没有.net 的。 其实大规模的网站规模越大和网页语言本身性能关系越小,不管是php,java还是asp.net,都很少会造成大规模网站的性能瓶颈,性能瓶颈往往出在大规模的数据存储的读写上。而在解决存储问题时出现的解决方案大多是用c或c++写的,这和c,c++优秀的性能是分不开的。 作为微软的程序员,我们应该如何对待这个问题呢?我们有几种可选方案: 上面提到的三个方案,方案1如果用c#开发,恐怕性能上很难与c,c++开发的模块相媲美;方案二,恐怕我们等的黄花菜都凉啦,还看不多希望,例如memcached出来后,我很希望微软也有类似的分布式缓存系统,但是等到现在代号从Velocity到Windows AppFabric也没看到谁真的在大点的网站系统中实际用过它。相比方案1,2方案3或许更可行,让memcached,或no-sql db运行在linux或者unix上,然后用.net 的客户端去访问他们。 我提上面的问题并非只想发发牢骚,希望看看大家怎么看待这个问题,希望能够集思广益,看我们.net程序员如何更好应对大规模网站开发。 我无意于那个语言好,那个语言坏的争论,存在的各个语言,肯定各有所长。也请大家不要做语言之争。 (责任编辑:admin) |