c# - C# 中的性能和内存消耗

标签 c# asp.net .net memory-management

我有两个问题:

1) 我需要一些关于智能代码的专家观点,这在性能和内存消耗方面足够明智。

2) 性能和内存消耗明智的是跟随一段代码的好坏,为什么???

需要将可以达到最大值的计数器增加 100 并编写如下代码:

部分示例代码如下:


for(int i=0;i=100;i++)
{
     Some Code
}

for(long i=0;i=1000;i++)
{
     Some Code
}

如果要求相同,使用 Int16 或其他任何东西代替 int、long 有多好。

最佳答案

Need to increment the counter that could go maximum by 100 and writing code like this:

给出的选项:

for(int i=0;i=100;i++)

for(long i=0;i=1000;i++)

编辑:如前所述,由于中间表达式是赋值而不是 bool 类型的表达式,因此这些都不会真正编译。

这证明了一个非常重要的观点:在使代码变快之前让代码工作。您的两个循环不做同样的事情 - 一个上限为 1000,另一个上限为 100。如果您必须在“快速”和“正确”之间做出选择,您几乎总是 想要选择“正确”。 (当然也有异常(exception)情况 - 但通常是针对大量数据的结果的绝对正确性,而不是代码的正确性。)

此处变量类型之间的更改不太可能产生任何可测量的差异。微优化通常就是这种情况。就性能而言,体系结构通常比方法内优化重要得多,而且以后也更难更改。一般来说,您应该:

  • 尽可能编写最简洁的代码,使用最正确、最简单地表示数据的类型
  • 确定合理的性能要求
  • 衡量您的干净实现
  • 如果它的表现不够好,使用分析等来找出改进方法

关于c# - C# 中的性能和内存消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11790232/

相关文章:

c# - .net 中的 JWT 生成和验证抛出 "Key is not supported"

c# - 不能动态调度扩展方法

css - 向 ASP.Net MVC 5 添加新主题不起作用

c# - 简单的 JavaScript 问题,在 IE 中返回 NULL,但在 FireFox 中工作!

.net - 解决错误 C3821 : managed type or function cannot be used in an unmanaged function

c# - MissingSchemaAction.AddWithKey 到底做了什么?

c# - 在静态方法中使用匿名lamba订阅事件会导致内存泄漏吗?

c# - Asp.net mvc fileupload 通过 ajax

c# - 使用 EntityState.Modified 时出错

c# - 为部署进行 web.config 转换的最简单方法?