草庐IT

c# - .NET:典型的垃圾收集器开销是多少?

5%的执行时间花在了GC上?10%?25%?谢谢。 最佳答案 Thisblogpost对该领域进行了有趣的调查。海报的结论?对于他的示例,开销可以忽略不计。SotheGCheapissofastthatinarealprogram,evenintightloops,youcanuseclosuresanddelegateswithoutevengivingitasecond’sthought(orevenafewnanosecond’sthought).Asalways,workonaclean,safedesign,thenpro

c# - 我如何找出一个目录中有多少个文件?

我需要计算一个目录中的文件数量。我可以使用System.IO.Directory.GetFiles()获取目录中所有文件的名称,并获取该数组的长度,但在大型目录上花费的时间太长。有没有办法只获取计数而无需获取名称? 最佳答案 我不这么认为,不-至少在vanilla.NET中不是。我怀疑花时间的不是实际获取名称——而是操作系统遍历目录内部。可能您可以通过P/Invoke进行Win32调用。您正在查看的目录有多大?一般来说,至少传统上在一个目录中拥有超过几百个文件并不是一个好主意。文件系统在这方面总体上有所改进,但我不知道NTFS和Fa

c# - 分配给从 Internet 下载文件的最佳内存缓冲区大小是多少?

分配给从Internet下载文件的最佳内存缓冲区大小是多少?一些sample说它应该是1K。好吧,我需要大体上知道为什么会这样?还有,如果我们下载小的.PNG或大的.AVI有什么区别?StreamremoteStream;StreamlocalStream;WebResponseresponse;try{response=request.EndGetResponse(result);if(response==null)return;remoteStream=response.GetResponseStream();varlocalFile=Path.Combine(FileManage

c# - .NET List.sort() 的时间复杂度是多少

C#的List.Sort()的时间复杂度是多少?我猜是o(N)但是我找了很多,都没有得到准确的结果。 最佳答案 http://msdn.microsoft.com/en-us/library/b0zbh7b6.aspxThismethodusesArray.Sort,whichusestheQuickSortalgorithm.Thisimplementationperformsanunstablesort;thatis,iftwoelementsareequal,theirordermightnotbepreserved.Inco

c# - 要使用多少线程?

我知道有一些现有的问题,它们提供了对事物的非常好的总体看法。我希望获得有关的C#/VB.Net方面的一些详细信息实际执行(不是哲学)其中一些观点。我的特殊情况我有一个WCF服务,其中包括接收文件。在服务的大部分时间里,这个特定的区域实际上只是坐在那里什么都不做——当工作来临时,它会以大不相同的数量到达。对于接收到的每个文件(最多每秒数千个),服务需要处理文件1-10秒(每个),具体取决于许多其他服务、本地资源和网络IO等待时间。为了帮助处理这些突发工作负载的服务,我实现了一个队列系统。每秒收到的数千个文件被放入队列中。Controller根据队列的大小计算要使用的线程数,直到达到“峰值

C#知道设置了多少个EventHandlers吗?

众所周知,我们可以创建一个EventHandler并向其添加N次方法。喜欢://DeclareandEventHandlerpubliceventEventHandlerInternetConnectionAvailableEvent;privatevoidOnInternetConnectionAvailableEvent(){if(InternetConnectionAvailableEvent!=null){EventHandlerhandle=InternetConnectionAvailableEvent;EventArgse=EventArgs.Empty;handle(t

c# - 每个进程初始化 System.Web.HttpApplication 多少次

我有global.asax,它从我创建的自定义类扩展而来,称为MvcApplication,它从System.Web.HttpApplication扩展而来。在它的构造函数中,它按照以下方式记录应用程序启动:protectedMvcApplicationGeneral(){_log.Info("logApplicationStartToTextFile");}当我去查看日志文件时,这似乎被调用了很多次,而不是每次应用程序启动一次。我在Application_Start中放置了另一个日志条目,它似乎只被调用了一次。Global.asax类是按请求实例化的,还是比每个应用程序实例化的频率高

c# - 如果扩展方法与密封类中的方法具有相同的签名,调用优先级是多少?

我正在阅读C#3.0中的扩展方法。我正在阅读的文本暗示,与被扩展类中的方法具有相同签名的扩展方法将在执行顺序中排在第二位——也就是说,密封类中的方法被调用。如果是这种情况,您如何扩展密封类? 最佳答案 事实上,actual方法优先于扩展方法。并且为了清楚起见-“执行顺序”表明两者都可能被调用;只有原始方法会被调用。也许选择另一个名字/签名;如果这是你的意图,你不能使用扩展方法来猴子补丁。如果有一些基类/接口(interface)(类型实现的)没有有这个方法,你也许可以把它投到那里......?

c# - 使用 Task.Delay() 的成本是多少?

我正在考虑在具有事件驱动逻辑的MMO游戏服务器中使用C#async\await。让我们假设有数千个实体在已知持续时间内做一些工作。所以我想为我的每个游戏对象调用Time.Delay()。(这是与普通无限循环相反的方法,每个游戏对象都有一些Update()调用。)有人知道Task.Delay()是如何实现的吗?它使用定时器吗?系统资源占用大吗?是否可以同时生成数千个Task.Delay()调用? 最佳答案 Task.Delay实现如下:publicstaticTaskDelay(intmillisecondsDelay,Cancell

c# - Linq OrderBy().ThenBy() 方法序列的时间复杂度是多少?

我在我的项目中使用Linq和Lambda操作,我需要根据类的两个属性对列表进行排序。因此,我使用了OrderBy().ThenBy()方法如下:classValueWithIndex{publiclongValue;publicintIndex;}...ListvaluesWithIndex=newList();for(inti=0;iv.Value).ThenBy(v=>v.Index);...在This回答中解释说,OrderBy()使用Quicksort,所以即使它有O(N*logN)的平均时间复杂度,最坏的情况下,时间复杂度也在O(N2)左右。如果ThenBy()方法的最差时间