草庐IT

Performance

全部标签

c# - 我可以通过在 C# 中通过引用传递 DateTime 参数来减少内存分配吗?

在C#中,与按值传递相比,将DateTime引用作为参数传递给函数时,内存分配是否有显着减少?intGetDayNumber(refDateTimedate)对比intGetDayNumber(DateTimedate)函数内的代码在任何情况下都不会修改日期。 最佳答案 DateTime是一个8字节的结构。ref有4或8个字节,具体取决于您的目标架构。所以最多只能节省4个字节的堆栈内存,这是完全不相关的。甚至有可能ref阻止了一些优化,例如将DateTime放在寄存器中,从而实际上增加了内存使用。这是一个明显的过早优化案例。不要这样

c# - 从 ASP.NET 与 SQL Mgmt Admin 调用时存储过程速度较慢

我们正在尝试诊断复杂存储过程中的缓慢(它有几个巨大的查询)。当我们从ASP.NET调用SP时,需要5秒。当我们从SQLManagementStudio调用它时(仅使用EXEC),它需要0.05秒。我们已经在许多不同的方式和环境中一致地测试了这种行为。这是针对C#.NET的。数据库为MSSQLServer2012。问题出在Web应用程序上,但我们编写了一个小型控制台应用程序作为测试工具,并且行为是相同的。1)我们在C#.NET控制台应用程序中计算耗时,如下所示:stopwatch.Start();rdr=cmd.ExecuteReader();stopwatch.Stop();2)我们通

c# - 命名空间的数量会影响性能吗?

在VisualStudio中有一个命令可以删除未使用的using语句usingSystem;usingSystem.Collections.Generic;usingSystem.Configuration;usingSystem.Data;usingSystem.Drawing;usingSystem.IO;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;未使用的using是否会影响性能? 最佳答案 代码文件中使用

c# - .NET 中最快的 GZIP 解压库

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。社区在3个月前审查了是否重新打开此问题,然后将其关闭:原始关闭原因未解决Improvethisquestion哪个.NET库的解压缩性能最快(就吞吐量而言)?那里有很多图书馆......GZipStreamDotNetZipXceedZipfor.NETSevenZipLibSharpZipLib|communitysponsorofXceedZipfor.NET...我希望还有更多我没有列出。有没有人看过这些GZIP库的吞吐量性能基准?我对

c# - String.Replace(char, char) 还是 Replace(string, string)?

当我只需要将一个字符替换为另一个字符时,String.Replace(char,char)和String.Replace(string,string)之间是否存在性能差异? 最佳答案 是的,有:我做了一个快速实验,看起来字符串版本慢了大约3倍。stringa="quickbrownfoxjumpsoverthelazydog";DateTimet1=DateTime.Now;for(inti=0;i!=10000000;i++){varb=a.Replace('o','b');if(b.Length==0){break;}}Date

c# - 为什么 Enumerable.Range 比直接 yield 循环更快?

下面的代码正在检查执行相同解决方案的三种不同方法的性能。publicstaticvoidMain(string[]args){//forloop{Stopwatchsw=Stopwatch.StartNew();intaccumulator=0;for(inti=1;iaccumulator+n);sw.Stop();Console.WriteLine("time={0};result={1}",sw.ElapsedMilliseconds,ret);}//self-madeIEnumerable{Stopwatchsw=Stopwatch.StartNew();varret=GetI

c# - 结构的快速序列化/反序列化

我有大量地理数据以仅包含结构的简单对象结构表示。我的所有字段都是值类型。publicstructChild{readonlyfloatX;readonlyfloatY;readonlyintmyField;}publicstructParent{readonlyintid;readonlyintfield1;readonlyintfield2;readonlyChild[]children;}数据被很好地分块到Parent[]-s的一小部分。每个数组包含几千个Parent实例。我有太多数据无法全部保存在内存中,因此我需要将这些block来回交换到磁盘。(一个文件将产生大约2-300KB

c# - WPF 是我的应用程序运行缓慢的原因吗?

我正在使用WPF开发应用程序。该应用程序全屏运行,无论显示器分辨率如何,我都需要它能够很好地调整大小。图形设计师为UI按钮、背景等设计了漂亮的图像。使用Illustrator插件,所有图像都已转换为xaml文件。我已将所有这些图像添加到应用程序中,它们看起来很棒。我还使用了很多Grid布局,这样屏幕可以在调整大小的同时仍然保持布局。所有这些都按需要显示,以不同的分辨率运行时看起来没有任何拉伸(stretch)。但是,屏幕转换和UI交互很慢。我想知道,这是由于大量使用图形造成的吗?我是否使用了太多Grid布局?但是,我需要Grid才能独立于分辨率。该应用程序在我的开发机器上运行良好,但在

c# - 除了方法在 linq 中如何工作

我有类(class):classSomeClass{publicstringName{get;set;}publicintSomeInt{get;set;}}classSomeComparison:IEqualityComparer{publicboolEquals(SomeClasss,SomeClassd){returns.Name==d.Name;}publicintGetHashCode(SomeClassa){return(a.Name.GetHashCode()*251);}}我还有两个大的List称为list1和list2以前我有:varq=(fromainlist1fr

c# - 识别奇数、偶数——二进制与模数

最近我不得不为大量整数确定一个数是奇数还是偶数。我想到了一个想法,通过将数字与1进行AND运算并将结果与​​1进行比较来将数字识别为奇数或偶数x&1==1//evenorodd我从未在实践中见过这种实现。您经常看到的最常见方式是:x%2==0我决定对这两种方法进行一些性能检查,二进制方法在我的机器上似乎稍快一些。intsize=60000000;ListnumberList=newList();Randomrnd=newRandom();for(intindex=0;index有没有人看过二进制方法的实现?有什么缺点吗? 最佳答案