.NET 性能优化小技巧

Intro

之前做了短信发送速度的提升,在大师的指导下,发送短信的速度有了极大的提升,学到了一些提升 .NET 性能的一些小技巧

HttpClient 优化

关于使用 HttpClient ,大概很多人都知道尽量使用单例以提升 HttpClient 的性能。

由于 HttpClient 在发送请求时需要进行域名解析,使用的时候第一次一般来说会慢一些,我们在 HttpClient 初始化完成之后,向目标地址发送一个 HEAD 请求,这样会把域名解析结果有一个缓存,实际去请求的时候所需用的域名解析的时间就会减少了,这样就可以提升第一次实际发送请求的速度。

HttpClient 的超时时间设置尽可能短以避免超长等待提升响应时间

同步操作优化

原来的同步操作,可以改为异步处理的使用异步方法处理,

如查询数据库等操作大多可以改为异步操作,减少线程阻塞,进一步提高 CPU 的利用率。

多个任务的调度,可以不需要关心一个任务调度的话就可以同时启动任务而且无需等待。

数据结构优化

在使用较多的 Model 处考虑 Model 中是否有较多的无用字段,如果有可以考虑用一个新的轻量级的 Model ,优化 Model 数据结构优化内存存储。

缓存

重复使用的值缓存起来(根据数据需要选择使用缓存类型,变量缓存或内存缓存或redis等分布式缓存),减少数据库查询次数

Sql 优化

  1. 如果需要同时插入许多数据,尽可能使用 BulkCopy 操作以提升性能

  2. 更新/查询条件优化,使用更准确的条件,尽可能使用主键查询和更新

  3. 批量更新数据的多次操作能够合并为一次操作的就合并为一次操作,不能合为一次操作就一次提交,注意防 Sql 注入

  4. 复杂 Sql 使用事务时,能在 Sql 中使用事务就在Sql中使用否则在代码中使用。使用事务时仅在需要开启事务的地方开启事务,事务结束就提交事务,不要在事务中掺杂不需要放在事务中处理的数据库操作

End

感谢大师,跟着大师进行一次性能优化,确实学到好多,自己对一些概念也是理解的更加深入了。

.NET性能优化小技巧的更多相关文章

  1. How Javascript works (Javascript工作原理) (十一) 渲染引擎及性能优化小技巧

    个人总结:读完这篇文章需要20分钟,这篇文章主要讲解了浏览器中引擎的渲染机制. DOMtree       ----|   |---->  RenderTree CSSOMtree  ----| ...

  2. JavaScript 工作原理之十一-渲染引擎及性能优化小技巧

    原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第十一章. 迄 ...

  3. sql性能优化小技巧(一)

    关于sql条件匹配对执行效率影响测试 首先,创建一个标量函数create function ff_test() returns int as begin declare @i int=0 while( ...

  4. sql执行顺序与性能优化小技巧(一)

    关于sql条件匹配对执行效率影响测试 首先,创建一个标量函数create function ff_test() returns int as begin declare @i int=0 while( ...

  5. 嵌入式C语言优化小技巧

    嵌入式C语言优化小技巧 1 概述 嵌入式系统是指完成一种或几种特定功能的计算机系统,具有自动化程度高,响应速度快等优点,目前已广泛应用于消费电子,工业控制等领域.嵌入式系统受其使用的硬件以及运行环境的 ...

  6. 10个提升MySQL性能的小技巧

    从工作量分析到索引的三条规则,这些专家见解肯定会让您的MySQL服务器尖叫. 在所有的关系数据库中,MySQL已经被证明了完全是一头野兽,只要通知停止运行就绝对不会让你多等一秒钟,使你的应用置于困境之 ...

  7. IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题

    IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...

  8. OI常用的常数优化小技巧

    注意:本文所介绍的优化并不是算法上的优化,那个就非常复杂了,不同题目有不同的优化.笔者要说的只是一些实用的常数优化小技巧,很简单,虽然效果可能不那么明显,但在对时间复杂度要求十分苛刻的时候,这些小的优 ...

  9. 摘:JavaScript性能优化小知识总结

    原文地址:http://www.codeceo.com/article/javascript-performance-tips.html JavaScript的性能问题不容小觑,这就需要我们开发人员在 ...

随机推荐

  1. Ubuntu 16.04安装Nginx

    在Ubuntu下安装Nginx有以下方法,但是如果想要安装最新版本的就必须下载源码包编译安装. 一.基于APT源安装 sudo apt-get install nginx 安装好的文件位置: /usr ...

  2. Linux 虚拟网络设备详解之 Bridge 网桥

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 前面几篇文章介 ...

  3. scala打包jar并在Linux下运行

    打开 File -> Project Structure Artifacts -> + -> jar -> From Modules with dependisies... 选 ...

  4. BBS论坛(一)

    1.1.项目结构搭建 (1)创建flask项目Perfect_bbs,然后搭建项目结构如下: (2)构建蓝图 cms/views.py # cmd/views.py from flask import ...

  5. JVM基础系列第9讲:JVM垃圾回收器

    前面文章中,我们介绍了 Java 虚拟机的内存结构,Java 虚拟机的垃圾回收机制,那么这篇文章我们说说具体执行垃圾回收的垃圾回收器. 总的来说,Java 虚拟机的垃圾回收器可以分为四大类别:串行回收 ...

  6. .NET Core实战项目之CMS 第十一章 开发篇-数据库生成及实体代码生成器开发

    上篇给大家从零开始搭建了一个我们的ASP.NET Core CMS系统的开发框架,具体为什么那样设计我也已经在第十篇文章中进行了说明.不过文章发布后很多人都说了这样的分层不是很合理,什么数据库实体应该 ...

  7. pdf生成库-libharu编译

    相关文章:libharu 源码编译 VS2010 1.首先下载libharu源码,libharu依赖于libpng和libzib,如果编译过libpng和libzib的话,直接拿过来用即可.否则需要自 ...

  8. Android--拦截系统BroadcastReceiver

    前言 上一篇博客,讲了BroadcastReceiver的一些基础内容,如何注册以及发送一个广播,那是基础,不清楚的可以先看看:Android--BroadcastReceiver.但是在实际开发当中 ...

  9. Android 开发工具类 18_NetWorkUtil

    检测网络的一个工具包: 1.网络是否可用: 2.判断是否有网络连接: 3.判断 WIFI 网络是否可用: 4.判断 MOBILE 网络是否可用; 5.获取当前网络连接的类型信息: 6.获取当前的网络状 ...

  10. python:数据库连接操作入门

    模块 import pymssql,pyodbc 模块说明 pymssql和pyodbc模块都是常用的用于SQL Server.MySQL等数据库的连接及操作的模块,当然一些其他的模块也可以进行相应的 ...