c# - 提高C#代码效率的方法

标签 c# optimization performance complexity-theory

<分区>

像我们大多数人一样,我非常热衷于提高代码效率。如此之多,以至于我宁愿选择快速执行的脏代码,而不是那些可能更优雅或更干净但速度更慢的代码。

对我们所有人来说幸运的是,在大多数情况下,更快、更高效的解决方案也是更简洁、最优雅的解决方案。我曾经只是一个编程爱好者,但现在我正在从事全职开发,并且刚开始接触 C# 和 Web 开发。我一直在阅读一些关于这些主题的好书,但遗憾的是,书籍很少涵盖更精细的方面。就像说,执行相同操作的两个代码中的哪一个运行得更快。这种知识主要来自经验。我请求所有的程序员同行在这里分享任何此类知识。

在这里,我将从我看到的这两篇博文开始。这正是我在这篇文章中寻找的东西:

P.S:如果本网站某处已经存在此类内容,请告诉我。我搜索但找不到,令人惊讶的是。也请张贴您所知道的涵盖此类内容的任何书籍。

P.P.S:如果您从我们都可以访问的某些博客文章或某些在线资源中了解某些内容,那么最好在我看来发布链接本身。

最佳答案

有些事情你应该做,比如使用泛型而不是对象来避免装箱/拆箱并提高代码安全性,但优化代码的最佳方法是使用分析器来确定代码的哪些部分运行缓慢.有许多适用于 .NET 代码的出色分析器,它们可以帮助确定程序中的瓶颈。

通常,您不应该关注提高代码效率的小方法,而是在完成编码后,然后分析它以找出瓶颈。

一个好的分析器会告诉你一些统计数据,比如一个函数被执行了多少次,一个函数的平均运行时间是多少,一个函数的峰值运行时间是多少,一个函数的总运行时间是多少等等. 一些分析器甚至会为你画图,这样你就可以直观地看到程序的哪些部分是最大的瓶颈,你可以深入到子函数调用。

如果不进行性能分析,您很可能会弄错程序的哪一部分速度慢。

一个很棒的免费 .NET 分析器的例子是 EQATEC Profiler .

关于c# - 提高C#代码效率的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3223670/

相关文章:

wordpress - 错误 508 - 许多 GET 请求指向不存在的路径

c# - 属性 Get v 方法的性能

c# - 使用海洋在 Petrel 3D 窗口中绘制地震体积墙

c# - 如何将 LinqToSql Table<TEntity> 转换为 Table<IEntity> where TEntity : IEntity?

c# - 如何使用 Autofac 使用方法连接事件?

c - 为什么只有注释更改的两个二进制程序在 gcc 中不完全匹配?

language-agnostic - 处理器用于优化代码的一些技巧是什么?

sql - 使用 Postgresql 的 OR 查询性能和策略

sql - 加快从另一个表更新

optimization - 在 Z3 中支持三角函数(例如 : cos, tan)