草庐IT

速度差异

全部标签

c# - 存在但未调用扩展方法时代码执行的差异

TL;DR,问题:.NET中扩展方法的存在对代码的执行有什么影响(例如JIT/优化)?背景我在MSTest中遇到测试失败,这取决于是否也测试了看似无关的程序集。我注意到测试失败,并且偶然注意到只有在加载另一个测试程序集时才会发生失败。在单元测试和集成测试程序集上运行mstest将开始执行集成测试,并在4.5CLR下的第21次集成测试中失败,而在4.0CLR下不会发生这种情况(否则配置相同)。我从集成测试程序集中删除了所有测试,但失败的测试除外。执行现在看起来像这样,加载了两个测试程序集,mstest加载了两个程序集,然后在集成测试程序集中执行单个测试,但失败了。>mstest.exe/

c# - Debug 和 Release 模式之间的异常堆栈跟踪差异

下面的代码在调试和Release模式下生成不同的异常堆栈跟踪:staticclassET{publicstaticvoidE1(){thrownewException("E1");}publicstaticvoidE2(){try{E1();}catch(Exceptione){throw;}}publicstaticvoidEntry(){try{E2();}catch(Exceptione){Console.WriteLine(e.StackTrace);}}}Debug模式下的结果:atET.E1()inD:\myStudio\CSharp\CSharp4.0\MyCSharp\

c# - 编译时常量差异

更新:这似乎是一个编译器转移注意力的问题,因为以下内容实际上是有效的:constintMyInt=default(int);问题在于DateTime不是有效的const,而不是default的使用。让我感到困惑的主要原因是没有意识到default(DateTime)是在可选参数中专门处理的(而且我得出了一个错误的结论,即default(DateTime)由于错误消息忽略了其他可能的条件而被视为编译时常量)。MarcinJuraszek在他的回答中解决了这个问题。原始问题:这是无耻地从MarcGravell来自thisanswer的评论中撕下的另一个问题。为什么以下内容有效://Noco

c# - 嵌套的 Parallel.For() 循环速度和性能

我有一个嵌套的for循环。我用Parallel.For()替换了第一个For,计算速度提高了。我的问题是关于用Parallel.For()替换第二个for(内部)。会提高速度吗?或者没有区别?还是会变慢?编辑:由于内核不是无限的(通常有2到8个内核),因此内部循环是并行运行的。因此,如果我用Parallel.For()更改内部for,它会再次并行运行。但我不确定它如何改变性能和速度。 最佳答案 来自“太细粒度,太粗粒度”小节,“反模式”部分在"Patternsofparallelprogramming"通过.NETparallelc

c# - .NET 和 T-SQL 之间的字符串比较差异?

在我编写的测试用例中,字符串比较在SQLserver/.NETCLR之间的工作方式似乎不同。此C#代码:stringlesser="SR2-A1-10-90";stringgreater="SR2-A1-100-10";Debug.WriteLine(string.Compare("A","B"));Debug.WriteLine(string.Compare(lesser,greater));将输出:-11此SQLServer代码:declare@lesservarchar(20);declare@greatervarchar(20);set@lesser='SR2-A1-10-90

c# - LINQ 查询上的 foreach() 速度慢 - ToList() 极大地提高了性能 - 为什么会这样?

我有点理解了整个延迟执行的概念,但下面的内容让我感到困惑......在包含大约1000行的DataTable上,我调用了AsEnumerable()。然后我选择返回到强类型类(1)的IEnumerable中的实体...这是我感到困惑的地方:我在集合上执行foreach循环;使用一堆Where()调用(2)从集合中的单个项目中选择东西......而且速度非常慢。DataTable.AsEnumerable().Select(r=>newObjectRepresentation{...});item.Where(i=>i.SomeEnum==SomeEnum.Something)...但是

c# - 提高速度的不安全 C# 技巧

我不习惯使用指针(例如C++)或不安全的孤岛进行编码:仅使用“安全”C#。现在我想在C#中为.NetMicroFramework实现一个函数,其中紧凑性和性能非常重要。基本上,我会收集4条短裤,从而填充缓冲区(例如字节数组)。假设每个样本都是这样的:structMyStruct{publicshortAn1;publicshortAn2;publicshortAn3;publicshortAn4;}每个样本都是通过计时器事件收集的,因此我无法循环(有几个原因)。我尝试了很多方法来有效地做到这一点,但表现最好的似乎是这个:unsafestructMyStruct2{publicfixed

c# - 如何使用Team Foundation的库来计算统一差异?

我想计算一个unifieddiff比较两个文档。(差异是通过电子邮件发送的,维基百科说统一差异是最好的纯文本差异格式。)TeamFoundation有一个commandlineinterface这样做>tfdiff/format:unifiedalice.txtbob.txt-Alicestartedtoherfeet,+Bobstartedtoherfeet,(示例文件位于https://gist.github.com/hickford/5656513)很棒,但出于通常的原因,我宁愿使用库也不愿启动外部进程。搜索MSDN,我发现TeamFoundation有一个.NET库Micros

c# - Box2D body 速度上限?

我有一个质量为10的物体,程序的每个循环我都使用简单方法对其施加100的力;Vector2force=newVector2(0,1)*100;bod.ApplyForce(force,bod.GetWorldCenter());它工作得很好,加速等等,但一旦速度达到10(我假设是100/10),它就不会再快了。我无论如何都不是物理学家,但我确实记得body应该不断加速,就像在重力作用下一样。这个速度限制是Box2D做事方式的结果,还是我真的搞砸了?另外,我该怎么做才能修复它。注意:如果我使用ApplyLinearImpulse而不是ApplyForce,我会得到相同的有限速度更新:我很

c# - WPF 和 WinForms WebBrowser 控件之间存在哪些功能差异?

WPFWebBrowser控件看起来很棒,但随着时间的推移积累的有关WinFormsWebBrowser的知识非常丰富,并且很难忽略像csExWB这样的工作。很高兴知道.NET3.5的WPFWebBrowser控件相对于WinFormsWebBrowser控件存在哪些功能缺点或优势。特别是,是否可以在WPFWebBrowser之上构建类似csExWB的功能? 最佳答案 在对wpf的组件一整天感到沮丧之后,这就是我的发现。显然,winformswebbrowser公开了更多的方法和属性。比如wpfwebbrowser中没有IsWebB