xml地图|网站地图|网站标签 [设为首页] [加入收藏]
0语法糖分析,读取txt文书档案和写入文书档案的
分类:编程

StreamReader sr = ``new StreamReader(path); ``//path是要读取的文件的完整路径

阅读目录:

.NET 性能优化小技巧

String str_read = sr.ReadToEnd(); ``//从开始到末尾读取文件的所有内容,str_read 存放的就是读取到的文本

  1. 自动属性默认初始化
  2. 自动只读属性默认初始化
  3. 表达式为主体的函数
  4. 表达式为主体的属性(赋值)
  5. 静态类导入
  6. Null条件运算符
  7. 字符串格式化
  8. 索引初始化
  9. 异常过滤器when
  10. catch和finally代码块内的Await
  11. nameof表达式
  12. 扩展方法
  13. 总结

Intro

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

sr.Close(); ``//读完文件记得关闭流

自动属性默认初始化

使用方法:

public string Name { get; set; } = "hello world";

为了便于理解使用2.0语法展示,编译器生成代码如下:

 public class Customer 
{
 [CompilerGenerated] 
private string kBackingField = "hello world"; 
public Customer() 
{ 
this.kBackingField = "hello world"; 
}

public string Name
{
    [CompilerGenerated]
    get
    {
        return this.<Name>k__BackingField;
    }
    [CompilerGenerated]
    set
    {
        this.<Name>k__BackingField = value;
    }
}
} 

 从生成代码中可以看出编译器是在实例构造函数时,初始化属性信息的。

HttpClient 优化

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

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

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

 

自动只读属性默认初始化

使用方法:

public string Name1 { get; } = "hello world";

编译器生成代码如下:

[CompilerGenerated] 
private readonly string kBackingField; 
public Customer() 
{
 this.kBackingField = "hello world";
 } 
public string Name1 
{
 [CompilerGenerated] 
get { return this.k__BackingField; }
 }

由于初始化默认值实在构造函数中赋值的,所以跟属性只读没关系。

同步操作优化

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

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

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

如果要一条一条读

表达式为主体的函数

使用方法:

Body Get(int x, int y) => new Body(1 + x, 2 + y);

编译器生成如下:

private Program.Body Get(int x, int y)
{
    return new Program.Body(1 + x, 2 + y);
}

简化了单行方法的编写,省去写大括号的功夫。

同时支持没有返回值的写法: 

void OutPut(int x, int y) => Console.WriteLine("hello world");

也支持异步函数的编写:

async void OutPut(int x, int y) => await new Task(() => Console.WriteLine("hello wolrd"));

数据结构优化

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

while ((content = sr.ReadLine()) != null)//按行输出
{
f+=content;
}

表达式为主体的属性(赋值)

使用方法:

public string Name2 => "hello world";

编译器生成代码如下:

public string Name2 
{ 
get { return "mushroomsir"; }
 }

编译器只生成了个只读属性。

缓存

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

本文由澳门新葡亰手机版发布于编程,转载请注明出处:0语法糖分析,读取txt文书档案和写入文书档案的

上一篇:没有了 下一篇:学习笔记,之MVC3继续整理问题
猜你喜欢
热门排行
精彩图文