草庐IT

Performance

全部标签

c# - 比 decimal.Parse 更快的替代方法

我注意到decimal.Parse(number,NumberStyles.AllowDecimalPoint,CultureInfo.InvariantCulture)比基于JeffreySax来自FasteralternativetoConvert.ToDouble的代码的自定义十进制解析方法慢大约100%publicstaticdecimalParseDecimal(stringinput){boolnegative=false;longn=0;intlen=input.Length;intdecimalPosition=len;if(len!=0){intstart=0;if(

c# - 通过将 UI 分解为 'regions' 来提高 WPF 性能 - 这可能吗?

我在WPF客户端应用程序上运行了一个非常简单的性能测试:publicpartialclassMainWindow:Window{privateObservableCollectiondata=newObservableCollection();publicObservableCollectionDataObj{get{returndata;}}privatevoidbutton1_Click(objectsender,RoutedEventArgse){for(intj=0;j{for(inti=0;i{data.Add(1);}));//updatesthecountDispatch

c# - 关于高分辨率性能计数器的解释及其与 .NET 秒表相关的存在?

在静态Stopwatch构造函数中,我们可以看到以下代码,它主要检查是否存在高分辨率性能计数器。staticStopwatch(){if(!SafeNativeMethods.QueryPerformanceFrequency(outFrequency)){IsHighResolution=false;Frequency=0x989680L;tickFrequency=1.0;}else{IsHighResolution=true;tickFrequency=10000000.0;tickFrequency/=(double)Frequency;}}在MSDN上它说QueryPerfo

c# - 获取特定的 StackFrame 而不是 StackTrace.GetFrame 是否更便宜?

如果我只是想执行以下操作以查看是什么调用了我,varst=newStackTrace();varcallingMethod=st.GetFrame(1).GetMethod()只购买那个特定的框架会更便宜吗?varsf=newStackFrame(1);varcallingMethod=sf.GetMethod()我用下面的代码进行了测试,但我不确定我的方法是否合理。Stopwatchsw=Stopwatch.StartNew();for(inti=0;i我的方法(和结果)是否正确?编辑我会使用CallerInformation属性,但是,我暂时停留在.NET3.5中。

c# - 对 int 中的单个字节进行操作的最快方法

我发现我的应用程序有25%的时间在循环中执行此操作:privatestaticintDiff(intc0,intc1){unsafe{byte*pc0=(byte*)&c0;byte*pc1=(byte*)&c1;intd0=pc0[0]-pc1[0];intd1=pc0[1]-pc1[1];intd2=pc0[2]-pc1[2];intd3=pc0[3]-pc1[3];d0*=d0;d1*=d1;d2*=d2;d3*=d3;returnd0+d1+d2+d3;}}如何提高此方法的性能?到目前为止我的想法:最明显的是,这将受益于SIMD,但让我们假设我不想去那里,因为它有点麻烦。同样适

c# - 使用继承的自定义 IDataReader 从 IDbCommand 读取

我已经让一个自定义类继承IDataReader并且已经成功使用自定义类实现自定义ServerWritersqlBulkCopy,该自定义类使用C#对象而不是DataTable。正如我所怀疑的那样,事实证明这是一种更有效的方法。现在我正在尝试阅读,但我遇到了一些问题这是IDataReader://getServerDataTableObjectIDataReaderpublicclassGetSDTOIDataReaderM:IDataReader{//privateIEnumeratorenumerator=null;publicMySqlDbTableObject.Raw.SqlDb

c# - 在 C# 中计算素数的最快方法?

我的问题实际上有答案,但它不是并行化的,所以我对改进算法的方法很感兴趣。不管怎样,它对某些人来说可能是有用的。intUntil=20000000;BitArrayPrimeBits=newBitArray(Until,true);/**SieveofEratosthenes*PrimeBitsisasimpleBitArraywhereallbitisaninteger*andwemarkcompositenumbersasfalse*/PrimeBits.Set(0,false);//Youdon'tactuallyneedthis,justPrimeBits.Set(1,false

c# - C# 类中私有(private)、 protected 、公共(public)和内部方法的性能有什么不同吗?

在C#类中,private、protected、public和internal方法的性能有什么不同吗?我对消耗更多处理器时间或RAM感兴趣。 最佳答案 我不知道正常调用有任何性能差异;当通过动态调用或反射访问时,更受限制的访问可能需要更多的工作,因为调用者可能需要更仔细地验证。在正常的JIT编译情况下,访问可以由CLR验证一次,然后视为理所当然。我猜想JIT编译(和IL验证)本身可能会因为更严格的访问而稍微慢一些-但我很难相信这会很重要。这应该绝对不是决定使用哪种辅助功能的一个因素,即使不知何故存在一些我不知道的微小性能差异。如果您

c# - Base Controller ASP.NET MVC 3 中的这个 Custom Principal 是不是非常低效?

尽管我已经在这里待了一段时间,但这是我关于SO的第一个问题,所以请多多包涵。我正在使用ASP.NETMVC3并且我想创建一个自定义的Principal这样我就可以存储比标准更多的关于当前用户的信息因此不必经常去数据库。这是我追求的相当标准的东西。我们先说电子邮件地址和用户ID。我决定将对象存储在缓存中,因为我知道不建议将其存储在session中。我也不想一直转换User对象,所以我想覆盖Controller中的User对象。所以我可以直接访问User.UserId并得到一些保证。所以我创建了一个这样的自定义主体:publicclassMyPrincipal:IPrincipal{pub

C# 在小函数上的性能

我的一位同事一直在阅读RobertCMartin的CleanCode,并读到关于使用许多小函数而不是更少的大函数的部分。这引发了关于这种方法的性能结果的争论。所以我们编写了一个快速程序来测试性能,并对结果感到困惑。对于初学者来说,这里是该函数的普通版本。staticdoubleNormalFunction(){doublea=0;for(intj=0;j这是我制作的将功能分解为小功能的版本。staticdoubleTinyFunctions(){doublea=0;for(inti=0;i我使用秒表类为函数计时,当我在调试中运行它时,我得到了以下结果。s_OuterLoopCount=