IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> .Net MVC性能优化指南 -> 正文阅读

[开发测试].Net MVC性能优化指南

性能优化

因.Net MVC为前后端混合项目,无法进行模块加载编译,目前可进行的优化为Gzip压缩以及官方提供的静态资源捆绑压缩(资源引入更推荐使用CDN的方式引入)

Gzip

gzip(GNU- ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会快得多。

在项目中添加一个全局过滤器,加入以下代码
加完后还需在App_Start - FilterConfig.cs进行配置

public class LoginFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
		// Gzip压缩
        var acceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
        if (!string.IsNullOrEmpty(acceptEncoding))
        {
            acceptEncoding = acceptEncoding.ToLower();
            var response = filterContext.HttpContext.Response;
            if (acceptEncoding.Contains("gzip"))
            {
                response.AppendHeader("Content-encoding", "gzip");
                response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
            }
            else if (acceptEncoding.Contains("deflate"))
            {
                response.AppendHeader("Content-encoding", "deflate");
                response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
            }
        }
    }
}

在这里插入图片描述

资源捆绑

Asp.Net MVC4和.NET Framework4.5所提供的支持捆绑和压缩的新类库System.Web.Optimization

  • 捆绑-将多个资源文件(javascript,css)合并成一个单独的文件
  • 压缩资源文件-清理空格,换行等,压缩文件大小
  • 自动清理缓存-服务端更新资源时,客户端不再使用缓存资源,而是重新从服务端缓存

官方文档:https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/bundling-and-minification

在BundleConfig中对捆绑资源进行配置

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
    	// 将项目中的多个js文件捆绑为一个clientfeaturesscripts.js文件
         bundles.Add(new ScriptBundle("~/bundles/clientfeaturesscripts")
                .Include("~/Scripts/vue-{version}.js",
                        "~/Scripts/element-ui.js",
                        "~/Scripts/axios.min.js"));
		bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/*.css"));
    }
}

页面引用资源

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>页面</title>
    @Styles.Render("~/Content/css")
</head>
<body>
	
    @Scripts.Render("~/bundles/clientfeaturesscripts")
    @RenderSection("scripts", required: false)
</body>
</html>

CDN引入

使用官方的资源捆绑仍然会消耗服务器性能与带宽,更推荐将资源打包上传至OSS后在前端进行引用

控制器Linq优化

基本都是SQL方面的优化,不过.Net MVC Linq使用的比较多
使用LInq的性能优化可以参考这篇文章https://www.cnblogs.com/yuyoho/p/13189041.html

服务器优化

通过IIS发布可开启预加载,避免初次访问请求时过慢。
应用程序池 -> 网站对应程序池 -> 右键,高级设置 ->选择,启动模式 AlwaysRunning
网站 -> 对应网站 -> 右键,高级设置 ->选择,预加载已启用 True

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-07 11:52:23  更:2021-07-07 11:53:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 21:31:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码