草庐IT

多得多

全部标签

sql-server - 为什么 VALUES(CONVERT(XML ,'...' )) 比 VALUES(@xml) 慢得多?

我想创建一个子查询,生成一个数字列表作为单列结果,类似于MindLoggedOutdidhere但没有@xxml变量,因此它可以作为没有sql参数的纯字符串(子查询)附加到WHERE表达式。问题是参数(或变量)的替换使查询运行慢了5000倍,我不明白为什么。是什么造成了如此大的差异?例子:/*Createaminimalisticxmllike7891...*/DECLARE@p_strVARCHAR(MAX)='789101123456789101123456789101123456';DECLARE@p_xmlXML=CONVERT(XML,''+REPLACE(@p_str,''

c - Windows 10 上的多线程性能比 Linux 差得多

我将一个多线程Linux应用程序移植到Windows,并在运行Windows10专业版的服务器上对其进行测试。与在相同双启动硬件上运行的Linux版本的性能相比,Windows版本的性能非常糟糕。我将代码简化为一个表现出相同症状的小型多线程示例。我希望SO社区能够就此应用程序在Windows和Linux之间存在这种性能差异的原因提供一些见解,并提供有关如何解决该问题的建议。我正在测试的机器具有双IntelXeonGold6136CPU(24/48物理/逻辑内核)@3.0GHz(Turbo加速至3.6GHz)和128GB内存。机器设置为双引导CentOS或Windows10。没有运行Wi

windows - 套接字在同一台 PC 上的通信是否比使用共享内存慢得多?

我有一个向外部应用程序提供视频的WindowsDLL。我的主应用程序创建每个视频帧,我使用由系统页面文件支持的全局共享内存将该帧传递给DLL。视频帧随后由外部应用程序检索并显示。我不拥有外部应用程序,只有它加载以从中获取视频的DLL。我正在考虑切换到基于套接字的方法来在我的主应用程序和DLL之间进行通信,并摆脱共享内存方法。我不喜欢看到“软页面错误”堆积如山,因为每次我向它写入新的视频帧时,我都会重复使共享内存位置无效。我相信软页面错误是无害的,只是所涉及的内存分页的副作用,但没有它我会更舒服。由于视频的传输帧速率约为每秒25帧,因此我有大约1/25秒的时间来传输帧。这些帧绝不会大于6

python - 为什么 wxGridSizer 在 wxDialog 上的初始化比在 wxFrame 上的初始化慢得多?

这似乎是windows特有的,这里有一个重现效果的例子:importwxdefmakegrid(window):grid=wx.GridSizer(24,10,1,1)window.SetSizer(grid)foriinxrange(240):cell=wx.Panel(window)cell.SetBackgroundColour(wx.Color(i,i,i))grid.Add(cell,flag=wx.EXPAND)classTestFrame(wx.Frame):def__init__(self,parent):wx.Frame.__init__(self,parent)ma

c# - Process.Start() 比在控制台中执行慢得多

我在使用Process.Start()执行.exe时遇到性能问题。.NET的执行时间大约是控制台的5倍。什么会导致这个?这是一个测试程序:publicstaticvoidMain(string[]argv){for(inti=0;i结果是这样的:0Elapsedtime4310ms.1Elapsedtime4330ms.2Elapsedtime4280ms....在cmd窗口中运行它几乎立即返回(不到1秒的执行时间)。尝试使用在控制台中对其进行计时>powershellMeasure-Command{cmd/cstart/wait%EXE%%ARGS%}执行时间大约为750毫秒,快了5

c# - WCF 比运行相同代码的 WebAPI 慢得多

我目前有2个暴露的端点。第一个是WebAPI(.NET4.6)。第二个是WCF(.NET3.5)。它们都能够执行相同的计算,但是WCF平均要慢10倍。有问题的计算代码包含在一个dll中,我们称之为core.dll。此dll还公开WCF端点并由ASP.NET站点使用。webapidll,我们称它为api.dll引用core.dll并由SPA使用。计算可以由任一客户端触发。平均而言,使用我的测试数据,WCF服务执行计算大约需要4.5秒,而WebAPI大约需要450毫秒(或快大约10倍)。我应该注意,所有数据库调用都是在测量的时间范围之外完成的。所有数据都是事先检索的,所有更新都是在计算完成

c# - 是什么导致 EF 插入比普通 ADO.NET 慢得多?

我必须在数据库中记录Web服务调用。一开始,我使用codefirstEF来定义Entity类和生成数据库脚本。数据库部分很简单,就一张表。有一个主键:Id,其他列是string、datetime和float。共16列。然后我跑了VS2012的性能分析。报告显示RecordUsageEF消耗了整个调用的一半时间,这很荒谬。我尝试了MergeOption.NoTracking选项和预生成View(Howto:Pre-GenerateViewstoImproveQueryPerformance)。但他们并没有太大帮助。然后我尝试了Ado.net。我将sql脚本放在源代码中只是为了测试。一起调

c# - Blob 代码下载比 MS Azure 存储资源管理器慢得多

我正在从大小为1GB的blob存储下载一个blob。如果我使用MSAzure存储资源管理器,它需要不到10分钟(我有20兆位的下线)。但是当我使用代码时:awaitblobRef.DownloadToFileAsync("D:\\temp\\data.mdf",FileMode.Create);(我也尝试过使用内存流)下载250MB需要一个多小时(此时我将其杀死)。我已经多次完成此测试并且它始终如一地发生。我还监控了网络流量。通过StorageExlorer的网络流量下降了大约20兆位通过code,网络流量下降1Megabit左右编辑:我仍在使用旧版本的Azure存储资源管理器(1.4

javascript - 为什么 push 方法比在 Javascript 中通过数组索引放置值要慢得多

我很不明白为什么要进行这个测试:http://jsperf.com/push-method-vs-setting-via-key表示a.push(Math.random());比慢十倍以上a[i]=Math.random();您能解释一下为什么会这样吗?什么神奇的“插入”使它变得如此缓慢?(或与其他有效方法相比如此缓慢)。编辑注意:推送测试是有偏见的。我每次迭代都会增加数组的大小!仔细阅读接受的答案! 最佳答案 Couldyouexplainwhythisisthecase?因为你的测试有缺陷。push总是附加到现有的a数组,使其更

java - 将 PNG 加载到 OpenGL 性能问题 - Java 和 JOGL 比 C# 和 Tao.OpenGL 慢得多

我注意到Java和JOGL与C#和Tao.OpenGL在将PNG从存储加载到内存时,以及在加载BufferedImage(java)或位图(C#-两者都是硬盘上的PNG)时存在很大的性能差异'进入'OpenGL。这个差异非常大,所以我假设我做错了什么,但是经过大量搜索和尝试不同的加载技术后,我无法减少这个差异。使用Java,我在248毫秒内加载图像并在728毫秒内加载到OpenGL在C#上,加载图像需要54毫秒,加载/创建纹理需要34毫秒。上面的图片是一个包含透明度的PNG,大小为7200x255,用于2D动画Sprite。我意识到尺寸真的很荒谬,正在考虑切割Sprite,但仍然存在巨