C# 7 and .NET Core 2.0 High Performance
这两天大致的翻看完了这本书,难度不深,基本上对High Perfromance说的都很浅显。如果只是新人,需要了解c#的和一些简单的性能编程方面的,可以看一下。要更有深度的,请找《编写高性能的.net代码》这本书。
这里放出目录,看看就好,对着知识点找对应的blog看也就可以了。
- .NET Core 2 和 c# 7有什么更新
- .NET 的演化
- .Net Core 2.0 的改进
- 性能的改进
- 简化发布包
- 从 .Net Core 1.x 升级到 2.0
- 探索 .NET Core CLI 和新项目模板
- 理解 .NET 标准
- 创建 .NET 标准库
- 了解 ASP.NET Core 2.0
- C# 7.0 的新特性
- 静态代码分析
- 了解 .NET Core 内部结构与性能分析
- .NET Core 内部结构
- CoreFX
- CoreCLR
- 了解 MSIL,CLI,CTS,CLS
- 了解CLR工作原理
- 从编译到执行
- GC
- .NET Native 和 JIT 编译
- 利用CPU多核特性实现高性能
- 如何提高发布版本的性能
- .NET Core 2.0 应用程序的性能基准
- 了解 BenchmarkDotNet
- 他是如何工作的
- 设定参数
- 使用 BenchmarkDotNet 的内存诊断功能
- 添加自定义配置
- .NET Core 内部结构
- .NET Core 下的多线程与异步编程
- 多线程的一些警告
- .NET Core 的线程
- 线程的同步
- 并行库(TPL)
- 使用TPL创建一个Task
- 基于Task的异步模式(TAP)
- 使用编译器实现(TAP)
- 并行程序设计模式
- 管道模式
- 数据流模式
- 生产值/消费者模式
- 并行循环
- 并行LinQ
- 数据结构与编写优化的代码
- 理解用大O表示算法的复杂度与性能
- 为性能优化选择正确的数据结构
- Array
- List
- Stacks
- Queue
- Linked lists
- Dictionaries, hastables, hasesets
- Generic lists
- 优化C#性能代码的最佳实现
- 装箱和拆箱
- 字符串拼接
- 异常处理
- For与Foreach
- 委托
- .Net Core 应用程序性能设计指南
- 编码原则
- 命名约定
- 代码注释
- 每一个类一个文件
- 一个方法只有实现一个逻辑
- 设计原则
- KISS
- YAGNI
- DRY
- Soc
- SOLID
- 缓存
- 数据结构
- 通信
- 资源管理
- 并发性
- 编码原则
- .Net Core 的内存管理技术
- 内存分配过程
- 通过SOS调试并分析CLR的内部构件
- 内存碎片化
- 避免终结器
- .NET Core销毁对象的最佳实践
- 实现 .NET Core 应用的安全与弹性
- 弹性策略
- 被动式策略
- 消息重发
- 服务离线
- 重试被离线的服务
- 带离线和重试的回退策略
- 主动式策略
- 超时
- 缓存
- 减仓检查
- 被动式策略
- 给应用程序存储存储敏感信息
- 保护 ASP.NET Core APIs
- SSL
- 防止CSRF(跨站点伪造请求)攻击
- 加强安全标示
- 添加需要HTTPs安全传输的头信息
- 添加 X-Content-Type-Options 头信息
- 添加 X-Frame-Options 头信息
- 添加 X-Xss-Protection 头信息
- 添加 Content-Security-Policy 头信息
- 添加 referrer-policy 头信息
- 给应用程序开启 CORS
- 认证与授权
- 弹性策略
- 微服务架构
- 使用工具监控应用程序性能
- 应用程序的关键性指标
- 平均响应时间
- 用户评分
- 错误发生率
- 请求率
- 用户端的吞吐量
- CPU和内存占用
- 性能测量用的工具与技术
- App Metrics
- 应用程序的关键性指标
- 附录
- 推荐书籍
- Dependency Injection in .NET Core 2.0
- Mastering ASP.NET Core 2.0
- 推荐书籍