草庐IT

Performance

全部标签

windows - 诊断一个集群软件的病态行为

我在一个小型集群上使用一种负载均衡器,它能够在零持续时间请求(即工作节点立即满足的请求)上达到>2000rps。但是,一旦请求不再是零持续时间并开始花费1毫秒,性能立即下降>10倍。双向传输的数据相同,大小约为2kb。这肯定与集群的饱和度或网络吞吐量无关,因为200rps的1ms请求是一个非常小的负载,而网络是10Gbit。此外,负载均衡器和工作节点上的CPU负载仅为2-5%。我想知道这是否可能与操作系统调度程序或操作系统网络堆栈的某些病态行为有关(即对于非常短的交互有一些特殊情况的行为)。我如何诊断原因?哪些性能计数器值得关注?使用什么工具或方法?(以防万一有人知道我的特定问题的答案

.net - LRU 文件缓存和在 Windows 目录中查找文件的成本

我有一个应用程序可以下载和缓存至少250,000个8KB*文件,总计约2GB。更新此缓存时,我需要删除最近最少使用的文件。*这些小文件跨越两个4KB扇区。为NTFS格式的5400RPM驱动器上的目录中的此类文件按名称获取文件句柄的相对成本是多少?如果我将所有200K文件存储在一个目录中,仅仅获取一个文件句柄会花费超过几毫秒的时间吗?我可以轻松地将文件存储到不同的目录中。Windows7默认禁用文件的最后访问时间,我不想要求管理员启用此功能。我是否应该在内存中维护一个单独的文件访问时间列表(应用程序退出时序列化到磁盘?)我是否应该考虑将这些文件存储在一个大的平面文件中?如果我使用.NET

c++ - 从 4.5.0 更新到 4.6.2 后 MinGW g++ 性能损失

今天我更新了MinGW并重建了我当前的C++项目。自从使用4.5.0以来,我已经记录了计时信息,并且在使用4.6.2版进行编译时,我看到了巨大的性能损失(大约慢了4倍)。我的构建命令:g++-Ilib\svl-1.5\include-Ilib\SDL-1.2.15\include-static-libgcc-static-libstdc++\-Ofast-O3-oecl.exesrc\ecl.cpp-lmingw32-lSDLmain-lSDL-std=c++0x我在Window64位系统上运行MinGW。您知道是什么导致了糟糕的表现吗?我的bin文件夹包含一个名为mingw32-gc

python - QueryFrame 在 Windows 上非常慢

我在Linux上构建了一个简单的网络摄像头录像机,效果很好。我得到约25fps的视频和良好的音频。我正在将记录器移植到Windows(win7)上,虽然它可以工作,但它无法使用。QueryFrame函数需要超过350毫秒,即2.5fps。代码在python中,但问题似乎确实是lib调用。我在具有相同网络摄像头(罗技E2500)的同一台机器上进行了测试。在Windows上,我安装了openCVv2.2。我现在无法检查,但Ubuntu上的版本可能更高一些。知道可能是什么问题吗?edit:我刚刚安装了openCV2.4,速度也一样慢。 最佳答案

c# - 如何最好地确定新应用程序的系统要求?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Howtospecifythehardwareyoursoftwareneeds?您如何确定用户PC的系统要求,以便他们安装和运行您的软件?我知道显而易见的,例如Windows、.NETFramework[版本号]。但是,您如何设计出正确的RAM、处理器和所有这些?这只是您在调试应用时观察到的情况吗?您是否只是查看资源监视器并观察您的应用程序使用了多少磁盘使用量,或者它占用了多少内存?是否有任何工具,或者您会推荐我使用工具来帮助确定我的应用程序的系统要求?我搜索过这个,但找不到太多信息。更重要的是,Windo

c - 如何测量 program.exe 启动时间?

我想测量我的程序exe启动时间呢是从点击或[enter]开始的时间如果从控制台或任何其他方式启动直到程序启动完成的时刻和它的代码可以在所有结构设置的情况下执行(可能这意味着当main()中的第一个命令被执行[?])我想以编程方式从在我的代码中-所以我想办法做到这一点需要读取准确的发射时间程序然后从中减去这次第一行代码执行时间(抱歉我的英语不好)怎么做? 最佳答案 您要从单击或[enter](包括shell(cmd.exe或Windows资源管理器)开销)还是从程序启动进行测量?以编程方式,您只能从进程创建开始计算时间,因此不包括查找

C 代码在 Windows 上比在 Linux 上慢

我正在开发一个项目,该项目将针对32位和64位Windows和Linux进行构建。该项目基于为文本文件加载字符串、对其进行处理并将结果写入SQLite3数据库。在Linux上,它达到每秒近400k个序列,由GCC编译,没有任何优化。然而在Windows上它卡在每秒100k个序列,在没有任何优化的情况下在VS2010上编译。我尝试在编译器中使用优化,但没有任何改变。这样对吗?Windows上的C代码运行速度较慢?编辑:我想我需要更清楚地说明一些要点。我在启用和禁用代码优化的情况下进行了测试。性能没有改变,可能是因为我的程序的瓶颈是浪费时间从HD读取数据。该程序利用了并行计算的优势。有一个

c - QueryPerformanceFrequency 与 CPU 速度不匹配?

从这些看来,函数返回以赫兹为单位的值QueryPerformaceFrequency()UnitsofQueryPerformanceFrequency运行英特尔酷睿i5-以2.8GHz运行函数似乎返回MHz?调试器中的值为1,328,261为什么只有7位数字?为什么该值不反射(reflect)2Ghz?(即2,8.......)我在这里错过了什么?函数使用不当(如下)?LARGE_INTEGERli;QueryPerformanceFrequency(&li);printf("Ticks:%f\n",double(li.QuadPart)); 最佳答案

windows - 为什么 openoffice 和 libreoffice 在 windows 7 和 8 上保存 odt 文件很慢

当我用openoffice或libreoffice保存native文件.odt时,该软件需要几秒钟才能再次启用。否则,当我用这两个软件保存.xsl文件时,没问题。 最佳答案 解决办法是去掉硬盘上的文件内容索引:-鼠标右键点击硬盘-选择属性-取消设置“除了文件属性外,还允许此驱动器上的文件对内容进行索引”-按“确定”按钮-接受目录和子目录未设置-等待 关于windows-为什么openoffice和libreoffice在windows7和8上保存odt文件很慢,我们在StackOverf

windows - 为什么我的代码执行得更慢?

在Windows中,我有两个独立的Perl脚本:第一个写入两个文件,第二个读取两个文件并执行任务(其中一个任务是调用大量子进程,每个子进程都在新控制台中打开)根据它发现这两个文件更新的速度有多快。第一个脚本设置为每x秒(通常是2或3秒)更新一次文件。我将这些时间记录在一个文件中。这在我第一次运行脚本时工作正常,如果我关闭所有控制台然后重新启动它,它工作正常。但是,如果我让控制台保持打开状态并启动它(在其中一个打开的控制台中),第一个脚本会花费更多(3到5倍)的时间来更新文件。请注意,控制台不执行任何代码,它们会在大约2秒内完成工作。我觉得这很奇怪。当我打开更多控制台时,第一个脚本似乎也