Articles of 性能

如何测量Windows上的内存带宽利用率?

我有一个高度线程化的程序,但我相信它不能在多个内核之间很好地扩展,因为它已经饱和了所有的内存带宽。 有没有任何工具可以测量多less内存带宽被使用? 编辑 :请注意,典型的分析器显示内存泄漏和内存分配的东西,我不感兴趣,我只是内存带宽是否饱和。

为什么Windows上的FFTW比Linux上快?

我在Linux和Windows上使用fftw3.a库( fftw3.a , fftw3.lib )编写了两个相同的程序,并计算fftwf_execute(m_wfpFFTplan)语句(16-fft)的持续时间。 对于10000次运行: 在Linux上:平均时间是0.9 在Windows上:平均时间是0.12 我很困惑为什么在Windows上比在Linux上快九倍。 处理器:Intel(R)Core(TM)i7 CPU 870 @ 2.93GHz 每台操作系统(Windows XP 32位和Linux OpenSUSE 11.4 32位)都安装在同一台机器上。 我从网上下载了fftw.lib(用于Windows),不知道这些configuration。 一旦我用这个configuration构buildFFTW: /configure –enable-float –enable-threads –with-combined-threads –disable-fortran –with-slow-timer –enable-sse –enable-sse2 –enable-avx 在Linux中,它会导致比默认configuration(0.4毫秒)快四倍的lib。

最快的方式来逐行读取string的文本文件

可能重复: 什么是C ++高性能顺序文件I / O最快的方法? 我已经环顾一下了,我仍然不确定这个问题的答案。 当从每行的任意词语的文本文件中读取时,从文件中读取单词的绝对最快的方式是什么? 项目的范围需要尽可能快的文件读取。 在Windows 7上使用Visual Studio。没有跨平台的考虑。 编辑:请记住,这个文件读取是一次性的,它不会被再次读取,也不会被写入。 程序启动时,从文件中读取,将其推入数据结构,loadFile()函数再也不会被调用。

以编程方式获取Windows上的每个进程磁盘io统计信息?

我想显示进程列表(Windows,C ++)以及它们以KB /秒为单位从磁盘读取和写入的数量。 Windows 7的资源监视器有能力,所以我应该能够做到这一点。 但是我无法find相关的API调用或在perfmon计数器中find任何东西。 任何人都可以指出我的方向?

我怎么知道我的进程是CPU限制,I / O限制,内存限制还是

我试图加快编译我的应用程序的时间,而我正在研究的一件事是检查哪些资源(如果有的话)可以添加到构build机器中以加快速度。 为此,我该如何确定是否应该投入更多的CPU,更多的内存,更好的硬盘或者是否有其他资源绑定进程? 我已经看到了这个( 如何检查应用程序是cpu绑定还是内存绑定? ),我正在寻找更多的技巧和指针。 我到目前为止所尝试的是: 在构build机器上对我的本地计算机上的进程计时。 我发现构build机器的时间是我的机器的两倍。 运行“资源监视器”,在进程运行时查看CPU使用情况,内存使用情况和磁盘使用情况 – 在这样做的时候,我很难解释这些数字,主要是因为我不明白每列的含义以及如何转化为一台虚拟机与一台物理机箱,以及它对多CPU机箱的意义。

快速的方法来复制(移动)batch file中的文件

我在一个目录中有大量的文件需要validation。 问题是,文件浏览器花费太多的时间来加载文件列表,我的整个计算机变得缓慢。 所以我写了下面的代码,通过移动一定数量的文件(显示为%limit% ,并将700)到编号文件夹(显示为%DirN% )来对文件进行%DirN% for /f "tokens=1-2 delims=:" %%a in ('dir /b /ad ^|findstr /n /v ".bat .cmd .txt"') do if %%a lss %limit% robocopy "%cd%" "%cd%\%DirN%" "%%b" /mov >nul 这个代码本身就像devise一样工作得很好,但是另外一个问题是速度。 由于我正在处理占用20 GB磁盘的文件,因此代码似乎需要永远以这种方式移动文件。 有没有更快的方法来复制(移动)文件? PS。 我试过/move和/xcopy命令,但没有看到太多的差异。 既然有一个上下文的请求,我附上完整的代码: @echo off pushd %~dp0 set DirN=-1 :Check_DirN set LeftOver= for /f "tokens=*" %%a in ('dir /b /ad […]

C#:什么是最快的方式来生成一个唯一的文件名?

我已经看到了随机命名文件的几个build议,包括使用 System.IO.Path.GetRandomFileName() 或使用一个 System.Guid 并附加一个文件扩展名。 我的问题是: 什么是最快的方式来生成一个唯一的文件名?

WampServer上的APC没有性能提升

我正在使用WampServer作为我的开发平台的Windows工作站上编写随后在Linux上运行的PHP应用程序。 我非常习惯Linux上的APC ,这对我来说是非常快速和必须的。 不过,当我在Windows上使用它时,我总是感到惊讶。 这导致每个页面的生成时间接近1秒,例如,严重依赖Zend Framework的应用程序。 大部分时间花在parsingPHP文件上(我通过基准testinginclude() s)。 在MacOS上,这个应用程序可以在Linux上运行速度提高10倍。 该扩展已正确加载: > var_export(extension_loaded('apc')); true 这是我的configuration: [APC] apc.enabled = 1 apc.cache_by_default = 1 apc.enable_cli = 0 apc.shm_segments = 1 apc.shm_size = 64M apc.max_file_size = 1M apc.stat=1 有没有人有类似的经验,并有一些提示分享? 编辑 :更多信息:我将apc.php文件从APC源存档复制到我的web目录。 在那里,我可以看到,APCcaching正在工作,报告超过90%的命中与未命中。 尽pipe如此,速度并没有增加。 包含几十个来自框架的文件,有或没有APC,需要半秒。 而在Linux上的同等机器上,速度要快10倍。

File.Copy与手动FileStream.Write复制文件

我的问题是关于文件复制性能。 我们有一个媒体pipe理系统,需要在文件系统上的大量移动文件到不同的位置,包括在同一networking上的Windows共享,FTP站点,AmazonS3等。当我们都在一个Windowsnetworking上,我们可以逃脱使用System.IO.File.Copy(源,目标)复制文件。 由于很多时候我们只有一个inputstream(就像一个MemoryStream),所以我们尝试抽象复制操作来获取一个inputstream和一个输出stream,但是我们看到一个巨大的性能下降。 下面是一些复制文件的代码作为讨论点。 public void Copy(System.IO.Stream inStream, string outputFilePath) { int bufferSize = 1024 * 64; using (FileStream fileStream = new FileStream(outputFilePath, FileMode.OpenOrCreate, FileAccess.Write)) { int bytesRead = -1; byte[] bytes = new byte[bufferSize]; while ((bytesRead = inStream.Read(bytes, 0, bufferSize)) > 0) { fileStream.Write(bytes, 0, bytesRead); fileStream.Flush(); } } } 有谁知道为什么这个performance比File.Copy慢得多? 有什么我可以做的改善performance? 我只需要把特殊的逻辑,看看我是否从一个窗口位置复制到另一个 – […]

Windows C ++纳秒时序?

有没有在Windows上的C + +的方式来测量纳秒时间? 我只能findLinux解决scheme。