在很多大型网站的终极架构中都会有用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. 自己开发应对高性能的模块,并将这些高性能模块在windows下做充分的压力考验;
2. 期待微软开发出我们需要的高性能的模块,然后我们来调用
3. 让这些高性能的模块在linux或者unix下运行,我们自行开发这些模块的存储客户端
…. 如果你有其他的方案,请补充
上面提到的三个方案,方案1如果用c#开发,恐怕性能上很难与c,c++开发的模块相媲美;方案二,恐怕我们等的黄花菜都凉啦,还看不多希望,例如memcached出来后,我很希望微软也有类似的分布式缓存系统,但是等到现在代号从Velocity到Windows AppFabric也没看到谁真的在大点的网站系统中实际用过它。相比方案1,2方案3或许更可行,让memcached,或no-sql db运行在linux或者unix上,然后用.net 的客户端去访问他们。
我提上面的问题并非只想发发牢骚,希望看看大家怎么看待这个问题,希望能够集思广益,看我们.net程序员如何更好应对大规模网站开发。
我无意于那个语言好,那个语言坏的争论,存在的各个语言,肯定各有所长。也请大家不要做语言之争。
分享到:
相关推荐
在ASP.NET高级培训中,可能涵盖的主题包括:依赖注入、单元测试、异步编程、缓存管理、安全性(如身份验证和授权)、Web服务(如SOAP和RESTful API)、大规模应用程序的设计和架构,以及性能优化等。 总之,.NET...
达尔文主义是一个专为Unix环境下的.NET 5平台设计的高性能计算工具包,特别适用于使用Visual Basic.NET进行编程的开发者。这个工具包旨在提供强大的算法和数学计算功能,以优化计算密集型任务的性能。在Unix系统上,...
在兼容性上,.NET Framework 4.8向下兼容先前的版本,这意味着开发者可以轻松地将现有的应用程序升级到新版本,而无需进行大规模的代码修改。同时,它还与.NET Core有一定的互通性,为未来的迁移提供了可能。 总的...
- **企业级应用开发**:由于其高性能和稳定性,非常适合用于开发大规模的企业级应用程序。 - **游戏开发**:利用C++的强大性能优势,结合.NET Framework的功能,适用于游戏引擎的开发。 - **多媒体应用**:适用于...
.NET Framework 2.0 SP1(Service Pack 1)是微软开发的一个重要的软件开发平台,它为程序员提供了构建、运行基于Windows的应用程序所需的基础架构。静默安装是一种无需用户交互的安装方式,常用于批量部署或者自动...
这本书不仅适用于已经熟悉C#的程序员,同时也对那些使用Visual C++ .NET或Visual Basic .NET的开发者具有很高的参考价值,因为它涵盖了.NET平台下的网络编程基础知识和高级技术。 在.NET框架中,C#语言是主要的开发...
另一个值得注意的ORM框架是Dapper,这是一个轻量级且高效的ORM,特别适合性能要求较高的应用场景。 在使用ORM框架时,开发者需要了解其基本概念,如实体(Entity)、上下文(DbContext)、数据模型(Data Model)、...
在HPSocket_v5.7.1版本中,它提供了丰富的功能,帮助程序员高效地处理网络通信问题,尤其适用于大规模并发和高性能的应用场景。 一、HPSocket.Net的核心特性 1. 高性能:HPSocket.Net设计之初就考虑到了性能问题,...
3. 大型站点支持:ASP.NET设计时考虑到了大规模Web应用的需求,支持Web Farm(多服务器集群)部署。它提供了外部会话状态管理和优化的组件通信,确保在多服务器环境中运行的平稳性和高可用性。只需添加服务器,即可...
但其性能相对较低,不适合处理大规模数据或复杂逻辑。 3. **ObjectARX**:这是一个基于C++的API,能够深度集成到AutoCAD环境中,提供高度定制化的功能。然而,由于C++的学习门槛较高,并且需要掌握大量的底层细节...
同时,对于Web开发,熟悉ASP.NET MVC或ASP.NET Core将增加你的竞争力,因为这些现代框架提供了高性能和跨平台支持。 除了技术能力,面试官还会关注你的团队合作、沟通和自我学习能力。在简历模板中,提供一些非技术...
总结起来,SiteServer CMS 是一个利用 .NET Core 技术栈构建的高效、低成本、易于维护的CMS解决方案,适用于构建大规模、功能丰富的网站。其模块化设计、高性能、微服务架构以及强大的安全特性,使其成为企业和个人...
3. Dapper:轻量级且高性能的ORM库,由Stack Overflow团队开发。Dapper不提供复杂的对象映射或查询语言,而是直接利用ADO.NET的强大功能,通过扩展方法简化SQL执行。Dapper适合对性能要求高,且对数据库操作比较熟悉...
3. C#介绍:C#是一种面向对象的编程语言,具有简洁、安全和高性能的特点,是开发ASP.NET应用的首选语言。 五、系统目标及可行性分析 系统开发目标包括实现销售订单管理、客户关系管理、采购管理、库存控制和交易...
这些知识对于构建大规模、高可用性的网络应用至关重要。 此外,现代网络开发往往涉及Web服务,如RESTful API和SOAP。C#.Net可以通过WCF(Windows Communication Foundation)或者ASP.NET Web API来创建和消费这些...
综上所述,这个压缩包包含的内容涵盖了Windows Server 2005的基础知识和SQL Server 2005的高级技术,尤其是数据库性能优化方面,对于程序员提升技能和解决问题具有很高的价值。学习者可以通过这些资料深入了解服务器...
C++ 是一门高性能的编程语言,特别适合于系统软件、游戏开发、嵌入式系统等领域。虽然其语法相对复杂,但掌握 C++ 能够为程序员带来更高的职业竞争力。 ##### 2.5 Go Go(又称为 Golang)是一种并发能力强的语言,...
《互动留言簿.NET v2.0 最终版》是一款基于.NET框架开发的网络应用,主要用于实现网站的在线交流和互动功能。此版本包含了对两种数据库的支持:ACCESS和SQL Server 2000,以满足不同规模和需求的网站使用。 1. **...
【通用数据查询与报表打印系统 asp.net】是一款基于ASP.NET技术开发的高效能、易使用的数据管理和报表生成工具。该系统旨在帮助企业或组织实现数据的便捷查询、分析及打印功能,以提升工作效率,简化数据处理流程。...
* 高性能和可扩展性 知识点2:Sql Server 2008数据库 Sql Server 2008是一个关系数据库管理系统,提供了强大且可靠的数据库管理功能。它具有以下特点: * 高性能和可扩展性 * 强大安全机制 * 支持大规模数据存储 ...