草庐IT

c# - ASP.NET Web API 2 - StreamContent 非常慢

我们已将一个项目从WCF移植到WebAPI(SelfHost),在此过程中,我们注意到在提供Web应用程序时速度大幅下降。现在是40-50秒,而之前是3秒。我通过使用以下Controller为AspNet.WebApi和OwinSelfHost添加各种Nuget包,在一个简单的控制台应用程序中重现了该问题:varstream=newMemoryStream();using(varfile=File.OpenRead(filename)){file.CopyTo(stream);}stream.Position=0;varresponse=Request.CreateResponse(S

c# - 查询代码非常慢,但在 SSMS 中查询速度很快

我有一个相当简单的查询,当它在代码中运行时,我不断超时(它需要三分钟多才能完成,我提前停止它所以我可以发布这个问题),但是当我运行相同的查询时在SqlServerManagementStudio中的同一台计算机查询将只取2532ms数据未缓存在服务器上时的第一个查询524ms用于重复查询。这是我的C#代码using(varconn=newSqlConnection("DataSource=backend.example.com;ConnectTimeout=5;InitialCatalog=Logs;PersistSecurityInfo=True;UserID=backendAPI;

c# - 查询代码非常慢,但在 SSMS 中查询速度很快

我有一个相当简单的查询,当它在代码中运行时,我不断超时(它需要三分钟多才能完成,我提前停止它所以我可以发布这个问题),但是当我运行相同的查询时在SqlServerManagementStudio中的同一台计算机查询将只取2532ms数据未缓存在服务器上时的第一个查询524ms用于重复查询。这是我的C#代码using(varconn=newSqlConnection("DataSource=backend.example.com;ConnectTimeout=5;InitialCatalog=Logs;PersistSecurityInfo=True;UserID=backendAPI;

c# - 为什么等待异步这么慢?

我终于得到了VS2012并得到了一个简单的演示并努力检查异步和等待的潜在性能提升,但令我沮丧的是它更慢!可能我做错了什么,但也许你可以帮助我。(我还添加了一个简单的线程解决方案,并且运行速度符合预期)我的代码使用一个类来对数组求和,基于你系统上的核心数(-1)我的有4个核心,所以我看到线程速度提高了大约2倍(2.5个线程),但速度慢了2倍为同样的事情而失望,但使用异步/等待。代码:(请注意,您需要添加对System.Management的引用才能使核心检测器正常工作)usingSystem;usingSystem.Collections.Generic;usingSystem.Linq

c# - 为什么等待异步这么慢?

我终于得到了VS2012并得到了一个简单的演示并努力检查异步和等待的潜在性能提升,但令我沮丧的是它更慢!可能我做错了什么,但也许你可以帮助我。(我还添加了一个简单的线程解决方案,并且运行速度符合预期)我的代码使用一个类来对数组求和,基于你系统上的核心数(-1)我的有4个核心,所以我看到线程速度提高了大约2倍(2.5个线程),但速度慢了2倍为同样的事情而失望,但使用异步/等待。代码:(请注意,您需要添加对System.Management的引用才能使核心检测器正常工作)usingSystem;usingSystem.Collections.Generic;usingSystem.Linq

c# - 为什么我的正则表达式的编译速度比解释速度慢得多?

我有一个庞大而复杂的C#正则表达式,它在解释时运行正常,但速度有点慢。我试图通过设置RegexOptions.Compiled来加快速度,这似乎第一次需要大约30秒,之后立即。我试图通过首先将正则表达式编译为程序集来否定这一点,这样我的应用程序就可以尽可能快。我的问题是编译延迟发生的时间,是否在应用程序中编译:RegexmyComplexRegex=newRegex(regexText,RegexOptions.Compiled);MatchCollectionmatches=myComplexRegex.Matches(searchText);foreach(Matchmatchin

c# - 为什么我的正则表达式的编译速度比解释速度慢得多?

我有一个庞大而复杂的C#正则表达式,它在解释时运行正常,但速度有点慢。我试图通过设置RegexOptions.Compiled来加快速度,这似乎第一次需要大约30秒,之后立即。我试图通过首先将正则表达式编译为程序集来否定这一点,这样我的应用程序就可以尽可能快。我的问题是编译延迟发生的时间,是否在应用程序中编译:RegexmyComplexRegex=newRegex(regexText,RegexOptions.Compiled);MatchCollectionmatches=myComplexRegex.Matches(searchText);foreach(Matchmatchin

c# - DocumentDB 在提取大量记录时是否比 SQL 慢?

我正在做一些基准测试,所以我有一个包含2500条记录的SQL数据库。我将这些记录插入到DocumentDB中。我写了两行代码,其中一行使用EntityFramework将所有2500拉入C#中的数组。下一行将所有2500个从DocuementDB拉入一个数组。使用的代码:vartest=awaitTask.Run(()=>client.CreateDocumentQuery(collection.DocumentsLink).ToList());DocumentDB示例花费了20多秒。SQLServer线路几乎是即时的。这些对象是具有5个属性的简单DTO,我通过Internet进行了S

c# - DocumentDB 在提取大量记录时是否比 SQL 慢?

我正在做一些基准测试,所以我有一个包含2500条记录的SQL数据库。我将这些记录插入到DocumentDB中。我写了两行代码,其中一行使用EntityFramework将所有2500拉入C#中的数组。下一行将所有2500个从DocuementDB拉入一个数组。使用的代码:vartest=awaitTask.Run(()=>client.CreateDocumentQuery(collection.DocumentsLink).ToList());DocumentDB示例花费了20多秒。SQLServer线路几乎是即时的。这些对象是具有5个属性的简单DTO,我通过Internet进行了S

c# - 一个动态程序集中的多种类型比多个动态程序集各有一种类型慢得多

所以我通过DefineDynamicAssembly发出一些动态代理,在测试时我发现:每个动态程序集一种类型:速度快,但占用大量内存一个动态程序集中的所有类型:非常非常慢,但使用的内存要少得多在我的测试中,我生成了10,000种类型,每个程序集一种类型的代码运行速度大约快8-10倍。内存使用完全符合我的预期,但是生成类型的时间怎么这么长?编辑:添加了一些示例代码。一个组件:varan=newAssemblyName("Foo");varab=AppDomain.CurrentDomain.DefineDynamicAssembly(an,AssemblyBuilderAccess.Ru