Articles of 性能

有效的线程数

我想优化我的应用程序线程数量。 几乎所有的CPU都有相同的IO值。 在系统中没有其他应用程序运行时,线程的有效数量是多less。 我想要Windows和JVM下的答案。

Windows Azure虚拟机在缩放时访问networking速度很慢

我正在我的小型Azure虚拟机上运行一些启动脚本(cmd / bat),其中包括从挂载的VHD进行文件传输操作,通常在3分钟内完成(复制文件并使用命令行提取〜500Mb zip文件7Z)。 当我扩展到150个实例时,同样的操作非常缓慢(总共15分钟,其中大部分被7z使用)。 另外,启动过程最慢的节点使用mstsc(animation比较滞后,需要花费大量的时间login)很难访问,但这可能没有关系。 可能是什么问题呢? 我们有想法来检查caching,但是在下面的情况下可能会出现其他任何潜在的瓶颈。 更新:我试图提取D:\驱动器,而不是提取它在C:\上,同时缩放到200,解压缩需要大约一分钟! 所以看起来问题在于C:\可能是一团糟。 但是同样的,我在40个文件中有3GB的数据,所以每个blob的60MB / s应该足以处理它。 或者 – 我们是否可以为所有斑点设置上限?

最佳文件缓冲区读取大小?

我正在写一个需要阅读相当大的文件的应用程序。 我一直想知道现代Windows XP计算机上读取缓冲区的最佳大小。 我search了一下,发现了很多例子,其中最佳尺寸为1024。 这里是我的意思的片段: long pointer = 0; buffer = new byte[1024]; // What's a good size here ? while (pointer < input.Length) { pointer += input.Read(buffer, 0, buffer.Length); } 我的应用程序相当简单,所以我不想写任何基准代码,但想知道什么尺寸是常见的?

在Windows上不一致的Python性能

我有一些我正在使用的Python 2.7代码,它在任何* nixtypes的系统上都很好用。 但是,在Windows上,代码的相同部分将具有非常不同的执行时间。 请注意我的debugging输出如下。 t是每次通过的总时间,s是生成数据的时间,u是通过串行发送数据到我的设备的时间(全部以毫秒为单位)。 t: 9 – s: 3 – u: 6 t: 14 – s: 9 – u: 5 t: 9 – s: 3 – u: 6 t: 9 – s: 3 – u: 6 t: 15 – s: 8 – u: 7 t: 14 – s: 9 – u: 5 t: […]

基准cp + git on linux vs Windows:为什么这样的区别?

我使用这个Python脚本创build了大量的文件,我主要用它来testingGit。 结果是非常惊人的,尤其是Windows和Linux之间的差异。 基本上我的脚本创build了12个目录,每个目录都有512个文件。 每个文件大约2到4 kB。 使用Git对象的版本库大约有12k个文件。 我做了基准testing: 时间把所有的文件git add .到git git add . 结帐前一个分支的时间 有时间在相同的SSD上复制存储库 时间将存储库复制到外部SATA硬盘(NTFS) 我在Windows 10和Linux上使用同一个存储库来完成这个任务: Operation Linux Windows Ratio ——— —– ——- —– 1. git add . 0.47s 21.7s x46 2. git checkout HEAD~1 0.35s 16.2s x46 3. git checkout . 0.40s 20.5s x50 4. cp -r ssd->ssd 0.35s 1m14s x211 5. […]

PHP因素30从Linux到Windows的性能差异

我们的团队正在开发WordPress插件,并在几台独立的服务器上提供托pipe实例。 我们的WordPress安装是由Gitpipe理的,所有的服务器都有相同的源代码和WordPress安装程序,只有数据库中的域名和实际数据有所不同。 对于每个安装,MySql运行在同一个主机上。 WordPress在每台服务器上都是独占运行的。 但是,在Windows Server 2008 RC2上部署此设置之后,我们注意到与其他服务器相比,性能显着不同:页面生成时间从平均值上升。 用PHP生成的页面为400ms到4000-5000ms。 对于仅由Apache提供的静态资源,速度与linux上大致相同。 所以我们采取了一些措施来缩小这个问题的范围: 确保没有antivir软件运行或其他Windows域的东西干扰 收集configuration文件数据以在脚本执行期间识别计时器 testing不同的服务器和硬件设置 仔细检查Apache和PHPconfiguration是否有明显的configuration错误 经过一些分析后,我们很快注意到正则expression式的评估在我们的Windows机器上是非常慢的。 评估10.000正则expression式( preg_match )在Linux上需要大约90ms,在Windows上需要大约3000ms。 以下提供了分析,系统testing和configuration细节。 我们不想优化这个脚本(我们知道该怎么做)。 我们希望让脚本在Linux上运行的速度与在Linux上的运行速度大致相同 (对于opcache / …给出相同的设置)。 也不需要优化脚本的内存占用。 更新:一段时间后,系统似乎耗尽内存,触发内存exception和随机分配。 请参阅下面的更多细节。 重新启动Apache / PHP现在解决了这个问题。 跟踪_get_browser是: File (called from) require wp-blog-header.php (index.php:17) wp (wp-blog-header.php:14) WP->main (functions.php:808) php::do_action_ref_array (class-wp.php:616) php::call_user_func_array (wp-includes/plugin:507) wp_slimstat::slimtrack (php::internal (507)) wp_slimstat::_get_browser (wp-slimstat.php:385) 更新2 :由于某些原因,我不记得我们回到激活PHP作为我们的服务器上的Apache模块(相同的性能不佳)。 但今天他们跑得非常快(〜1秒/请求)。 添加Opcache带来这个下降到~400ms […]

WPF – 在SYSTEM帐户下执行进程时性能较低

问题描述 我有一个WPF应用程序,通常在具有pipe理员权限的本地用户帐户下运行。 但是,在某些情况下,该进程是由在SYSTEM帐户下运行的服务或脚本启动的,因此该进程也在SYSTEM帐户下运行。 问题是当进程在SYSTEM帐户下运行时,有一些明显的滞后(UI不是很响应)。 我使用perfmon进行了一些挖掘,没有发现任何可疑的东西(CPU没有超载,没有抛出exception的exception,没有内存泄漏等)。 我也检查了事件日志,并没有发现任何有用的(没有警告/错误,只有与系统无关的信息)。 我首先以为这是由于模拟的上下文中执行的过程,但即使没有模拟(我使用PsExec.exe -i -s在SYSTEM帐户下启动它),滞后仍然存在。 任何想法,这将是从哪里来的? 不要犹豫,问你是否需要更多的信息,我主要是寻找一些有助于find根本原因的想法(显而易见的解决方法是不启动SYSTEM帐户下的过程,但它不是一个修复)。 此外,请注意,应用程序在Windows Embedded Standard(XP SP3)的自定义版本下运行,并且在具有电容式触摸屏的设备上运行。 我的问题 我的问题不是“我怎么解决这个问题?” 但是“为什么在SYSTEM帐户下应用程序运行性能低下? 更新1 我试图改变Windows的性能优化设置为@Sanderbuild议,没有任何改变( http://support.microsoft.com/kb/308417 )。 更新2 我也做了一个testing使用这个应用程序: http : //www.kynosarges.org/WpfPerformance.html#Application 当在每个帐户下运行应用程序时,第一次GDI +testing(基本上绘制了一堆三angular形),我在SYSTEM帐户下的运行时间总是大约两倍,这导致我认为这不是严格的WPF限制。 再次,除了执行进程的帐户之外,我没有任何改变。

慢图片框

我正在为我在学校的项目编写一个简单的Ludus Latrunculorum游戏,并使用图片框来表示游戏的各个部分。 但是,当我使用背景图像 – 任何背景图像的面板,我把它放在,它吸引他们很慢。 就好像在左上方放置1张图片,然后等待0.005左右放置下一张,直到板子被填满。 我已经尝试用1×1白色图像replace背景图像,结果相同。 但是,当我使背景颜色( this.board.BackColor = Color.Green; )它立即打印件。 而且,当我把背景颜色透明的时候,我会看到整个背景的原始背景,印刷速度又很慢。 但是当我使用Color.Tan(这是我的透明度键)时,我会看到窗体背后的任何东西,并立即打印这些部分。 我觉得这很奇怪,因为我猜测CPU对于获取背景图像和打印背景图像是比较困难的。 为什么会这样呢? 我怎样才能立即打印图片? 期望的行为 – 即时打印的作品。 实际行为 – 慢速打印件。 简短的代码来获取相同的问题: Form1.Designer.cs using System.Drawing; namespace WindowsFormsApplication6 { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being […]

MongoDB与CouchDB(速度优化)

我做了一些速度testing来比较MongoDB和CouchDB。 只有插入是在testing。 我得到的MongoDB比CouchDB快15倍。 我知道这是因为socketsVS http。 但是,这对我来说非常有趣,我如何优化CouchDB中的插入? testing平台:Windows XP SP3 32位。 我使用了最新版本的MongoDB,MongoDB C#Driver和CouchDB for Windows 安装包的最新版本。 谢谢!

如何获得当前进程的Windows性能计数器

我正在编写一个C ++应用程序foo.exe的代码。 在应用程序内部,我想logging它的地址空间使用情况。 所以我想看的性能计数器是“\ Process(foo)\ Virtual Bytes”。 我遇到的问题是可能有多个在系统上运行的foo.exe实例。 在perfmon中,我可以看到这些引用为“\ Process(foo#2)\ Virtual Bytes”,其中#2可以是任何数字,具体取决于进程的数量。 我怎样才能构造一个计数器path来获取当前进程的虚拟字节,以处理有多个进程实例的情况?