ASP.NET MVC3 + EF 性能优化解决方案以及最优架构
[集思广议]
我们用 asp.net mvc3 + ef 做了一个网站,现在是内测阶段,发现打开速度非常慢。首页打开(无缓存)都在5-6s以上(测试环境:程序和db都在本机),请问各位 mvc3+ef 比较适合大多数项目的架构是怎么样子,能否给个截图说明各个项目的意思。
另:各位用 mvc3 ef 开发的网站性能究竟如何,怎么优化呢??
第一次用 ef ,第一个项目用 mvc,无从下手!
首次启动是会很慢,后面再打开页面的时候就快了。
1.对常用数据进行缓存。
2.在编写程序的时候避免不必要的分层,不合理的分层也会影响到性能。
3.你发布到外网上去,然后把地址告诉我们,我们来看看,哈哈。
4.将JS写成公用的,并放到单独的js文件中。
如果不是必须要加载时才执行js,建议将 js 放置在页面尾部。
5.减少aspx 设计页面中不必要的注释,将不用的控制都删除。
尽量多使用HTML控制,少使用服务器控件。
6.合理的配合使用Ajax,可以提升用户体验。
7.优化数据库,对频繁使用的表加索引。
8.我还是缓存,其实我上面有说到过,在此再强调一下。
9.常用的查询语句最好做做成存储过程,EF是可以调用存储过程的。还有可以做视图,EF了同样支持对视图的处理。
10.对于复杂的业务,比如5个表以上的关联查询,建议用sql来实现,EF在多表关联方面,会生成非常复杂的Sql语句,虽然生成的语句也不差,但是相比咱自己写的,我觉得自己写的还更好些。(强调,我是说的极多表关联的时候)
谢谢给的这些建议,目前在逐一排查。
@西安-DB: 哥们这个问题最终是如何解决的 我也遇到了
只是首次启动慢还是每次打开首页都慢?
首次慢正常,每次打开首页都慢那就得看你的场景和代码了。
每次都慢。。定义 viewModel 组合 view需要的数据 在view中展示,我一度怀疑我ef代码写的有问题,不过查来查去,看不出什么问题,甚至 在读取列表的时候,我都选择读取部分字段数据而不是全部数据。
你的问题恐怕还没到架构的层面,你首先得从你的首页的流程开始分析整个加载过程,哪些部分占用了多少时间。
嗯,提到架构只是个题外话,想要调整下项目结构,因为现在 ef 底层数据访问都是直接写在控制器里的,代码几千行,吓死个人呐。
嗯,我说的是 同一个控制器下 如果有 N多个 actionResult 的话,代码行数会比较多。
方法一:
1.完全不可以不读取数据,直接打开页面,看看快不快
2.然后读取一个非常简单的表,看看快不快
3.用的viewModel读取,看看速度,同时打开sql profile,看看view的执行效率
方法二:
直接用sql profile看那些sql执行较慢,特别是你使用proceduce , view后。
不是很会ef,但是ef应该有个初始化过程,应该写在application_start就可以了,会不会是每次request action都执行初始化呢?
asp.net mvc3 首次访问速度慢
第一:iis会定时释放已加载的类库。类库被释放后再次加载需要时间。
第二:EF首次访问速度确实比较慢!楼主可以随便写两个ADO.NET 的数据连接对比一下。
先在点想放弃EF的想法。
楼主有什么高见请随时贴出来,让我们学习一下!
ASP.NET MVC3 + EF 性能优化解决方案以及最优架构相关推荐
- [转]ASP.NET MVC3 + EF 性能优化解决方案以及最优架构
[集思广议] 我们用 asp.net mvc3 + ef 做了一个网站,现在是内测阶段,发现打开速度非常慢.首页打开(无缓存)都在5-6s以上(测试环境:程序和db都在本机),请问各位 m ...
- 让数据中台飞起来—— Quick BI性能优化解决方案及实践
Quick BI"数据门户"在企业数据中台建设中的重要性 企业在数据中台初步建设完成以后,怎样让客户直观感受到数据中台的价值?企业决策者.各部门管理人员.业务运营人员如何通过统一的 ...
- 让数据中台“飞“起来— Quick BI性能优化解决方案及实践
1 引言 Quick BI"数据门户"在企业数据中台建设中的重要性 企业在数据中台初步建设完成以后,怎样让客户直观感受到数据中台的价值?企业决策者.各部门管理人员.业务运营人员如何 ...
- Spark性能优化:Shuffle调优篇
Spark性能优化:Shuffle调优篇 一.调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO.序列化.网络数据传输等操作.因此,如果要让作业的性 ...
- GPU性能优化之CUDA调优指南
GPU性能优化之CUDA调优指南 GPU性能优化之CUDA调优指南 1 整体性能优化策略 2 最大化利用率 2.1 应用程序层次 2.2 设备层次 2.3 多处理器层次 2.3.1 占用率计算 3 最 ...
- [导入]ASP.NET26个常用性能优化方法
数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...
- ASP.NET夜话之21:asp.net网站的性能优化
本篇主要讲述在ASP.NET中如何提高程序性能.提高程序性能的方法主要从编码和数据操作及优化配置三方面,本章要讲述的知识点有: l 程序编码优化 l 数据操作优化 l 配置优化 l 总结 21.1 程 ...
- CSS3 动画卡顿性能优化解决方案--摘抄
最近在开发小程序,与vue类似,它们都有生命周期这回事. onLoad 监听页面加载 onReady 监听页面初次渲染完成 onShow 监听页面显示 到底是什么意思? 所以这又触碰到了我的知识盲区, ...
- EF学习和使用(七)EF性能优化篇
自从ITOO平台旗下的评教系统问世之后,其性能问题引起了轩然大波.CPU占用过高,页面反映速度超慢,根本无法正常使用,为此我们专门成立一个性能优化小队,去研究为什么系统性能这么低,怎么优化性能? 框架 ...
最新文章
- 何晓冬:做科研与其各拿十块“铜牌”,不如合力做一块“金牌”
- 使用Lex和Yacc开发C语言的编译器
- Symfony 4.3 发布,带来搜索引擎自动保护
- for、enumerat、range、xrange
- SAP Spartacus的OccCmsPageNormalizer
- 解决重启VCSA 6.0提示:503 Service Unavailable错误
- 如何使用iMazing开启和平精英的极限帧数
- python自带的单元测试框架,最好的python单元测试框架
- 90后游戏开发大神毛星云跳楼自杀!8年执着国产3A梦碎
- 1招提升Java单元测试ROI
- python调用gephi_利用Python和Gephi制作人物关系网络图
- 汇编指令sar与shr
- 计算机桌面排列,如何进行桌面图标排列 让你的桌面一秒变酷炫【图文教程】...
- 2021鹏业安装算量软件常见问题整理(二十)
- plsql developer 怎么卸掉中文语言包
- 什么是欧拉角/姿态角?
- 最新研究报告: 坐飞机哪个位置最安全?
- 【十四、网站备案、博客备案、工信部备案】2021最详细wordpress博客建站教程(2021.03.04更新)
- 基于随机森林算法的糖尿病数据集回归
- apriori和关联规则算法
热门文章
- [UOJ500]任意基DFT
- C/C++中的restrict关键字
- 我,48岁,上海外企高管,如今,失业三年终于找到工作,分享工作经验
- 储能电站建设运行及效益分析
- 【记录】科大讯飞语音控件的使用——Android Studio
- php js是什么意思,js什么意思
- 基于JavaSSM+MySQL的健身网站前后台设计与实现
- 【分享NVIDIA GTC 23大会干货】在 GPU 上使用 Video Codec SDK,CV-CUDA 和 TensorRT 加速现代云上视频应用 [SE51229]
- 独孤思维:最近迷茫了
- 【亲测可用】win7远程连接问题:您的凭据不工作