zoukankan      html  css  js  c++  java
  • 《C#高效编程》读书笔记11-理解短小方法的优势

    我们最好尽可能的编写最清晰的代码,将优化交给JIT编译器完成。一个常见的错误优化是,将大量逻辑放在一个函数中,以期减少额外的方法调用开销。这种将函数逻辑直接写在循环内部的常见优化做法却会降低.NET应用程序的性能。

    public string BuildMsg(bool takeFirstPath)
    {
        StringBuilder msg = new StringBuilder();
        if(takeFirstPath)
        {
            msg.Append("A");
            msg.Append("B");
            msg.Append("C");
        }
        else
        {
            msg.Append("E");
            msg.Append("F");
            msg.Append("G");
        }
        return msg.toString();
    }
    

    在第一次调用BuildMsg时,if-else的两个分支都会被JIT编译。而实际上仅需要编译其中一个。修改后:

    public string BuildMsg2(bool takeFirstPath)
    {
        if(takeFirstPath)
        {
            return First();
        }
        else
        {
            return Second();
        }
    }
    

    因为两个分支内部的代码拆分到了各自的方法中,所以这两个方法可以根据需要再JIT编译,而不必在第一次调用时执行。同理,对于switch语句中的每个case中代码,这个规则带来的影响会更大。

  • 相关阅读:
    Hbase安装与简单使用
    Integer Int
    Maven是什么
    对Servlet执行流程的初步认识
    android studio 开发环境的搭建
    centos下更换默认的python版本
    写出我心(七)
    写出我心(六)
    写出我心(五)
    写出我心(四)
  • 原文地址:https://www.cnblogs.com/kw13202/p/6767347.html
Copyright © 2011-2022 走看看