博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Effective C# 学习笔记(十一)尽量缩减函数体的大小,提高运行效率
阅读量:5246 次
发布时间:2019-06-14

本文共 970 字,大约阅读时间需要 3 分钟。

由于.NET平台的JIT机制会自动优化代码,其运行原理为逐个函数载入,逐个函数进行执行。所以函数体大小及其中声明的变量的多少直接影响着我们程序的运行效率。

如:

//下面的代码在运行时 对于if ,else中的代码一次只会执行一个,对于JIT来讲,运行这个函数会一次加载函数体中的内容,这样很影响效率 :(

public string BuildMsg(bool takeFirstPath)

{

  StringBuilder msg = new StringBuilder();

  if (takeFirstPath)

  {

  msg.Append("A problem occurred.");

  msg.Append("\nThis is a problem.");

  msg.Append("imagine much more text");

  }

  else

  {

  msg.Append("This path is not so bad.");

  msg.Append("\nIt is only a minor inconvenience.");

  msg.Append("Add more detailed diagnostics here.");

  }

  return msg.ToString();

}

//不如写成这样 :)

public string BuildMsg2(bool takeFirstPath)

{

  if (takeFirstPath)

  {

  return FirstPath();

  }

  else

  {

  return SecondPath();

  }

}

 

另外可以用以下代码声明JIT应对代码的执行行为

[MethodImpl(MethodImplOptions.NoInlining)]

 

.net 运行机制为

  1. 你的代码被 C#编译器解析为 IL中间层代码
  2. IL中间层代码又被JIT 编译器解析为机器码
  3. 操作系统执行机器码

 

而对程序员要求就是要尽量让编译器去做优化,写简单短小的代码,不要累坏我们的编译器呦

转载于:https://www.cnblogs.com/haokaibo/archive/2011/07/04/2097717.html

你可能感兴趣的文章
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>
第三次作业
查看>>
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Ubuntu 安装之python开发
查看>>
恶心的struts标签,等我毕业设计弄完了,瞧我怎么收拾你。
查看>>
Linux中防火墙centos
查看>>
hudson+apachecontinuum+ant
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
实验五 TCP传输及加密
查看>>
【iOS】build diff: /../Podfile.lock: No such file or directory
查看>>
【Android Studio】使用 Genymotion 调试出现错误 INSTALL_FAILED_CPU_ABI_INCOMPATI
查看>>
FancyCoverFlow
查看>>
教你一分钟实现动态模糊效果
查看>>
C++中explicit的用法
查看>>
java 企业站源码 兼容手机平板PC 响应式 主流SSM框架 freemaker 静态引擎
查看>>