Articles of 性能

为什么窗口第一次打开文件的速度太慢了,还有更快的方法

这是Windows 7,64位,专业使用 考虑一个非常简单的循环 for (i = 0; i < names->size(); i++) { std::string Name = names->at(i); HANDLE fileHandle = CreateFile(Name.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if (fileHandle == INVALID_HANDLE_VALUE) { throw "Failed"; } CloseHandle(fileHandle); } 如果我在一个有863个文件的目录上运行它,它会稍微超过22秒,或25毫秒/文件。 下一次169毫秒或0.19毫秒/文件。 如果我只是使用find_file的时间,新鲜的目录是非常快的,约0.2毫秒/文件。 虽然我在这里使用了CreateFile,但其他方法的结果相同。 当然,答案是文件caching:Windows必须caching关于文件打开的信息。 而且,它必须是磁盘访问,就像目录在SSD上一样,第一次和第二次打开大致相同。 现在这些硬盘上的查找时间只有9毫秒,所以有人知道WINDOWS在25毫秒的时间里只有在没有读数的情况下打开/closures一个文件才能读取。 但更重要的是,是否有可能加快速度。 你可能会说25 ms很快,但是我正在播放video文件,所以我需要在33 ms左右读取数据,实际读取的数据在30 ms范围内,所以打开成本太高。 任何build议如何快速打开* *文件的负载,将不胜感激。

Windows上的Python性能

在Windows上,Python通常比* nix机器慢一些? Python似乎在我的Mac OS X机器上大放异彩,而我的Window的Vista机器似乎运行速度较慢。 机器处理能力相似,Vista机器有1GB的内存。 我在Mercurial中特别注意到了这一点,但我想这可能只是Mercurial如何在Windows上打包。

我可以使用哪些工具来确定应用程序的硬件要求?

对于普通读者:传奇™继续… 我的应用在我的开发机器上运行良好 – 这是5年前购买的一款相当不错的游戏装备。 因此,这是64位,具有2.2GHz的时钟速度和2GB的内存。 但是,工作的机器是标准的戴尔问题办公室电脑,甚至很难启动我的应用程序,更不用说运行它了。 ( 解释…我可以想象,人们对我尖叫:“你究竟在做什么来要求这样的规范?”那么,我正在做大量的实时图像分析和audio生成。 我们的团队有预算购买专用笔记本电脑(需要便携式)来运行它。 所以现在我已经负责生成一个最低要求的规格。 我可以使用哪些工具来确定能够舒适地运行我的应用程序的最低规格? 更新:到目前为止,答案虽然有用,但更侧重于分析的替代scheme。 所以我已经提出了一个赏金,看是否有任何软件会做这种事情。

Windows和Linux中的Hashlib

我正在Python中编写一个p2p应用程序,并使用hashlib模块来识别networking中具有相同内容但名称不同的文件。 问题是我用Python 2.7testing了Windows(Vista)中的文件的散列码,速度非常快(不到一秒,几千兆字节)。 所以,在Linux(Fedora 12,Python 2.6.2和Python 2.7.1由我自己编译,因为我没有find与yum rpm)是慢得多,几乎一分钟的文件小于1GB。 问题是, 为什么? 我可以做些什么来提高Linux的性能? 散列的代码是 import hashlib … def crear_lista(directorio): lista = open(archivo, "w") for (root, dirs, files) in os.walk(directorio): for f in files: #archivo para hacerle el hash h = open(os.path.join(root, f), "r") #calcular el hash de los archivos md5 = hashlib.md5() while True: trozo = h.read(md5.block_size) […]

有效的线程数

我想优化我的应用程序线程数量。 几乎所有的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 […]