在最近的ASP.NET项目中,我们在测试期间发现系统性能低下。最开始我们怀疑是由于使用了过多的UserControl所致。但是由于这已经是项目晚期,已经不可能再推翻以往的设计架构重来。所以我们不得不寻找其它可以改善性能的方法。
刚开始我们使用缓存来进行改善。但是我们的页面中大量的数据都是随时变化的,.net framework不够精确的缓存命中率给我们的数据一致性表现带来尴尬的处境。
其次Viewstate的优化似乎也没有什么效果,可以优化的地方少之又少。
唯一可以做的便是将大量页面的SessionState改为ReadOnly,因为我们需要在处理过程中使用Session进行用户效验。
最后我们不得不从后台处理来考虑。我们发现后台的服务类以及业务逻辑被频繁调用,所以我们使用Singleton模式将底层业务逻辑类和工具类进行了重构,发现性能大幅提升。虽然有人说Singleton的一个缺点便是每次都需要检查类是否创建,这会消耗资源。但是检查所消耗的资源总比创建要小得多吧,何况不会无止境的吞噬宝贵的内存。
这次的经历告诉我们一个教训:良好的结构将会保证系统的稳定性和性能。
相关文章
- 在Windows上使用映射的网络驱动器时,改善java文件i/o性能。
- 使用Singleton改善ASP.NET性能备注
- JFace TableViewer性能改善 -- 使用VirtualTable
- 1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用数据库MetaData方法 只获取需要的数据 选用最佳性能的功能 管理连
- ASP.NET MVC5使用MiniProfiler监控MVC性能
- 如何使用gpu.js改善JavaScript的性能
- 使用Metrics.NET 构建 ASP.NET MVC 应用程序的性能指标
- 如何使用Visual Studio 2017对ASP.NET IIS Web应用程序进行性能配置?
- 如何使用Visual Studio 2017对ASP.NET IIS Web应用程序进行性能配置?
- 使用GPU.js改善JavaScript性能