草庐IT

加速度

全部标签

c# - 托管在 Windows 服务中的 WCF 服务运行速度比控制台应用程序慢 10 倍

我有一个C#库可以进行一些文件处理。我创建了一个控制台和桌面应用程序,它使用该库并在大约1分钟内处理一个256mb的文件。然后,我创建了一个托管在Windows服务中的WCF服务,该服务使用相同的文件处理库,但在从网站调用时处理相同的256mb文件需要10倍的时间。Windows服务在具有管理员权限的域帐户下运行。调用WCF服务的开销非常快,但LoadFile方法花费的时间要长得多。我尝试通过在启动期间增加进程优先级Process.GetCurrentProcess().PriorityClass=ProcessPriorityClass.High;没有用。我已经在Win764位桌面系

c# - 为什么在这个简单的测试中,方法的速度与触发顺序有关?

我一直在做其他实验,直到这种奇怪的行为引起了我的注意。代码在x64版本中编译。如果键入1,List方法的第3次运行比前2次多花费40%的时间。输出是Listcosts9312Listcosts9289Arraycosts12730Listcosts11950如果键入2,Array方法的第3次运行比前2次多花费30%的时间。输出是Arraycosts8082Arraycosts8086Listcosts11937Arraycosts12698可以看到模式,完整的代码附在下面(编译运行即可):{提供的代码对于运行测试来说是最少的。用于获得可靠结果的实际代码更复杂,我包装了该方法并在适当预热

c# - 在四核上使用线程可将代码速度提高 65%?

这个样本code在四核处理器上比较串行方法和线程方法。该代码仅使用GetPixel()从4个图像中读取所有像素。我发现速度提高了大约65%,为什么它不等于75%,因为我有4个内核并且所有内核都已被充分利用?附言:你能检查代码吗,因为我没有做任何I/O,并且没有其他进程在机器上运行(正常的Windows进程) 最佳答案 它可以是任何数量的东西。想到的一对夫妇管理不同线程的开销。其他进程正在同时使用系统中的资源。 关于c#-在四核上使用线程可将代码速度提高65%?,我们在StackOverf

c# - 当数据流的速度快于订阅者可以消耗的速度时,Rx 会如何表现?

我对在生产应用程序中使用Rx感到非常兴奋;我将在其中收听来自不同channel的传入通知更新。我将在此流之上编写Rx查询,我将在其中使用.Window()运算符进行节流。订阅者(在我的例子中是ActionBlock)将以阻塞方式处理这些数据;(即它不会从ActionBlock生成任务)。请记住,如果数据的速度比我的订阅者可以消耗的速度快得多,那么传入数据会发生什么。Rx查询是否在内部使用任何缓冲区;它会溢出吗? 最佳答案 您所指的现象称为背压,Rx团队目前正在探索处理这种情况的不同方法。一种解决方案可能是将背压反馈给Observab

c# - 如何在 C#.NET 中获得准确的下载/上传速度?

我想使用C#.NET通过网络接口(interface)获得准确的下载/上传速度我知道可以使用GetIPv4Statistics().BytesReceived计算它并让线程休眠一段时间。但它没有给出我在浏览器中得到的输出。 最佳答案 这是来自LINQPad的一小段代码。它使用非常简单的移动平均线。它使用“Speedtest.net”显示“准确速度”。需要记住的是,Kbps以位为单位,并且HTTP数据通常被压缩,因此对于高度可压缩的数据,“下载的字节数”会小得多。另外,不要忘记这些天任何旧进程都可能在互联网上做任何旧事情(没有更严格的

c# - DateTime.Now 检索速度

这个语句是否有可能返回trueDateTime.Now==DateTime.Now一个非常快的机器可以为这条语句返回true吗,我在几台机器上试过,它总是false? 最佳答案 是的。Theresolutionofthispropertydependsonthesystemtimer,whichisapproximately15millisecondsonWindowssystems.Asaresult,repeatedcallstotheNowpropertyinashorttimeinterval,suchasinaloop,m

c# - 以毫秒为单位测量 .net 中的代码速度

我想获得我必须执行一个循环的最大计数,它需要x毫秒才能完成。例如。intGetIterationsForExecutionTime(intms){intcount=0;/*pseudocodedosomecodeherecount++;untilexecutionTime>ms*/returncount;}我如何完成这样的事情? 最佳答案 IwanttogetthemaximumcountIhavetoexecutealoopforittotakexmillisecondstofinish.首先,不要那样做。如果需要等待一定的毫秒数

c# - Entity Framework 的查询执行速度极慢且效率低下

我在Windows2008R2的ASP.NET上运行EntityFramework4.1和.NET4.5。我正在使用EF代码优先连接到SQLServer2008R2,并执行一个相当复杂的LINQ查询,但结果只是一个Count()。我已经在两台不同的网络服务器上重现了这个问题,但只有一个数据库(当然是生产环境)。它最近开始发生,没有在Web或数据库端更改应用程序、数据库结构或服务器。我的问题是在某些情况下执行查询会花费大量时间(接近4分钟)。我可以采用从SQLProfiler中提取的实际查询,并在大约1秒内在SSMS中执行。这对我来说是一致且可重现的,但是如果我将其中一个参数(“2015

c# - 提高分割文件的速度

我正在使用这段代码从文件中提取一个block//infoisFileInfoobjectpointingtofilevarpercentSplit=info.Length*50/100;//extract50%offilevarbytes=newbyte[percentSplit];varfileStream=File.OpenRead(fileName);fileStream.Read(bytes,0,bytes.Length);fileStream.Dispose();File.WriteAllBytes(splitName,bytes);有什么办法可以加快这个过程吗?目前,对于5

c# - 从 C# 运行时 SQL 查询超时,在 SQL Server Management Studio 中运行速度很快

我有一个使用下面列出的代码执行SQL查询的C#程序。直到前几天,我一直在使用这段代码一段时间,没有任何问题。我将一个查询字符串传递给SQL,其中包含一个字符串列表,这些字符串是股票标识符。前几天我跑了一下,查询超时了,让我跑一个多小时。过去几天我一直在尝试调试它。在我最初的查询中,大约有900个标识符。我已经尝试改变我能想到的一切,但我得到了无法解释的结果。例如:该查询适用于一个股票列表,但不适用于另一个在字符串数量和总长度方面具有相同长度的列表它适用于一个列表,但不适用于相反顺序的同一个列表对于一个列表,如果恰好有900个标识符,它就可以工作,但如果有899或901个,它就不会工作,