本篇是 Writing High-Performance .NET Code 的目录索引,翻译内容不定时更新,目录也会同步修改。

  1. 性能测量及工具

  2. 垃圾回收
  3. JIT编译
    • JIT编译的好处
    • JIT编译的花费
    • JIT编译的优化
    • 减少JIT和启动的时间
    • 分析并优化JIT过程
    • 什么时候使用NGEN
    • 优化NGEN映像文件
    • 新特性:本地化代码生成
    • 什么时候不能编译JIT
    • 测量
      • 性能计数器
      • ETW事件
      • Subtopic
  4. 异步编程
    • 使用Tasks
    • Parallel Loops
    • 避免阻塞
    • Async and Await
    • 关于一个程序结构的说明
    • 正确使用计时器
    • 确保配置了正确的线程池大小
    • 不要终止线程
    • 不要修改线程优先级
    • 测量
  5. 通用编码与类设计
    • 类VS结构体
    • 覆盖结构体的Equals和GetHashCode方法
    • 虚函数和终结类
    • 接口调度
    • 避免装箱
    • for vs. foreach
    • 类型转换
    • P/Invoke
    • 委托
    • 异常
    • 动态对象
    • 代码生成
    • 预处理
    • 测量
  6. 使用.NET框架
    • 了解所有你所调用的API
    • 一些API的思考
    • 集合
    • 字符串
    • 避免API在正常情况下抛出异常
    • 避免API在大对象堆里分配
    • 使用延迟初始化
    • 令人惊讶的Enum消耗
    • 追踪时间
    • 正则表达式
    • LINQ
    • 读取文件
    • 优化HTTP设置于网络通讯
    • 反射
    • 测量
  7. 性能计数器
    • 性能计数器的消耗
    • 创建一个自定义性能计数器
  8. ETW 事件
    • 定义一个事件
    • 自定义事件在PerfView里的开销
    • 创建一个自定义ETW事件监听器
    • 获得事件源的详细信息
    • 自定义PerfView分析扩展
  9. Windows Phone
    • 工具
    • 垃圾回收与内存
    • JIT
    • 异步编程与内存模型
    • 其它的思考
  10. 代码安全
    • 了解底层操作系统,api和硬件
    • 在某些区域里限制你的api访问
    • 集中和抽象性能敏感和困难的代码
    • 隔离非托管或不安全代码
    • 保持代码的清晰,知道有证明说有性能问题
  11. 构建一个具备性能意识的团队
    • 了解性能相关的领域
    • 有效测试
    • 性能基础设施和自动化
    • 只相信数字
    • 有效的代码回顾
    • 教育

[翻译]【目录】编写高性能 .NET 代码的更多相关文章

  1. 编写高性能Javascript代码的若干建议

    多年来,Javascript一直在web应用开发中占据重要的地位,但是很多开发者往往忽视一些性能方面的知识,特别是随着计算机硬件的不断升级,开发者越发觉得Javascript性能优化的好不好对网页的执 ...

  2. [翻译] 编写高性能 .NET 代码--第五章 通用编码与对象设计 -- 类 vs 结构体

    本章介绍了本书其它部分未涉及到的一些编码和设计原则.包含了一些.NET的应用场景,有些不会造成太大危害,有些则会造成明显的问题.剩下的则根据你的使用方法会产生不同的效果.如果要对本章节出现的原则做一个 ...

  3. [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比

    <<返回目录 平均值 vs 百分比 在考虑要性能测试的目标值时,我们需要考虑用什么统计口径.大多数人都会首选平均值,但在大多数情况下,这个正确的,但你也应该适当的考虑百分数.但你有可用性的 ...

  4. [翻译]编写高性能 .NET 代码 第一章:工具介绍 -- Visual Studio

    <<返回目录 Visual Studio vs虽然不是全宇宙唯一的IDE,但它是.net开发人员最常用的开发工具.它自带一个性能分析工具,你可以使用它来做开发,不同的vs版本在工具上会略有 ...

  5. [翻译]编写高性能 .NET 代码 第一章:工具介绍 -- Performance Counters(性能计数器)

    <<返回目录 Performance Counters(性能计数器) 性能计数器是监视应用程序和系统性能的最简单的方法之一.它有几十个类别数百个计数器在,包括一些.net特有的计数器.要访 ...

  6. [翻译]编写高性能 .NET 代码 第二章:垃圾回收

    返回目录 第二章:垃圾回收 垃圾回收是你开发工作中要了解的最重要的事情.它是造成性能问题里最显著的原因,但只要你保持持续的关注(代码审查,监控数据)就可以很快修复这些问题.我这里说的"显著的 ...

  7. [翻译] 编写高性能 .NET 代码--第二章 GC -- 减少分配率, 最重要的规则,缩短对象的生命周期,减少对象层次的深度,减少对象之间的引用,避免钉住对象(Pinning)

    减少分配率 这个几乎不用解释,减少了内存的使用量,自然就减少GC回收时的压力,同时降低了内存碎片与CPU的使用量.你可以用一些方法来达到这一目的,但它可能会与其它设计相冲突. 你需要在设计对象时仔细检 ...

  8. [翻译]编写高性能 .NET 代码 第二章:垃圾回收 基本操作

    返回目录 基本操作 垃圾回收的算法细节还在不断完善中,性能还会有进一步的提升.下文介绍的内容在不同的.NET版本里会略有不同,但大方向是不会有变动的. 在.net进程里会管理2个类型的内存堆:托管和非 ...

  9. [翻译] 编写高性能 .NET 代码--第二章 GC -- 配置选项

    配置选项 在基于"less rope to hang yourself with"思想下,.NET 框架没有给开发提供很多太多的配置选项.但在大多数情况下,GC会跟你的硬件配置,及 ...

随机推荐

  1. mybatis_helloword(1)

    摘录自:http://blog.csdn.net/y172158950/article/details/16979391 新的项目中用到mybatis,虽然不用自己写ORM的代码,但是借这个机会,学习 ...

  2. system进程占用80端口

    服务器规划:apache分配80,iis分配其他端口 理论上,只需要把iis 默认站点的80端口改成其他端口就可以了,可是发现改了apache80端口还是用不了, cmd查了下,发现system进程占 ...

  3. 安装新的int 9中断例程

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  4. java8-新特性--(接口的默认方法与静态方法)

    Java 8用默认方法与静态方法这两个新概念来扩展接口的声明. public interface Inte{ void method(); default void defaultMethod(){ ...

  5. i2c总线的oled12864屏的u8x8运用总结

    github网址链接 https://github.com/olikraus/u8g2/wiki/u8x8reference#print 用到的库文件 #ifdef U8X8_HAVE_HW_SPI ...

  6. scss 初学笔记 一 变量声明 默认的样式 嵌套

    $width: 300px !default; $:          变量声明符号; width:    变量名称; 300px:   赋予变量的值; !default  代表默认样式 !defau ...

  7. JDK自带的缓存--包装类的缓存

    关于包装类和基本类型的文章我前面已经整理过了,这里大致罗列下重点.我们主要是想研究下包装类的缓存. 1,自动装箱和自动拆箱 java1.5之后就提供了自动装箱和自动拆箱的功能,当然我们也可以手动来装箱 ...

  8. linkin大话数据结构--Queue

    链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer).由于不必按顺序存储,所以插入和删除速度超 ...

  9. yaml 格式

    来源:http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt 1.YAML是一种通用的数据串行格式 2.基本语法规则: 大小写敏感 使用缩进表示层级 ...

  10. 【转】MATLAB图形句柄(二)

        MATLAB图形句柄   1.1 图形对象及其句柄 1.2 图形对象属性 1.3 图形对象的创建 1.1 图形对象及其句柄 1.图形对象 MATLAB的图形对象包括计算机屏幕.图形窗口.坐标轴 ...