zoukankan      html  css  js  c++  java
  • .NET性能优化小技巧

    .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

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

  • 相关阅读:
    数据类型
    springboot中get post put delete 请求
    图解SQL的inner join、left join、right join、full outer join、union、union all的区别
    【转】MyBatis之级联——一对一关系
    【转】浏览器同源政策及其规避方法(2)
    【转】浏览器同源政策及其规避方法(1)
    Spring Boot配置文件详解
    【BUG】Spring Mvc使用Jackson进行json转对象时,遇到的字符串转日期的异常处理(JSON parse error: Can not deserialize value of type java.util.Date from String[])
    【转】SpringBoot Mybatis 读取配置文件
    MySQL
  • 原文地址:https://www.cnblogs.com/weihanli/p/9379206.html
Copyright © 2011-2022 走看看