草庐IT

CPU性能

全部标签

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

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

c# - XNA 窗口缩放性能

在我的XNA游戏中,我针对1920x1080分辨率对整个游戏进行编程和设计,然后缩放比例和信箱以适应正在运行的系统(XBox或PC)。这是一个很好的解决方案,因为它让我永远只担心一个解决方案。但是,我现在想知道随着游戏变得更加复杂,这是否会在未来再次困扰我。因为我必须在每次绘制时缩放所有内容(我只使用缩放因子缩放SpriteBatch.Begin()一次,完成所有绘制,然后调用End()),这会对性能产生不利影响吗?我知道当本地设置为720p时,XBox已经为XNA游戏做到了这一点(我实际上是在XBox上运行时,它只是获得了适当的缩放因子)......所以我无法想象它太糟糕了,即使是P

.net - Windows Xperf diskio 操作不显示程序在性能跟踪 session 期间读取的文件

我运行xperf是为了在运行程序时获取程序的跟踪信息。程序读取一个文件。它是一个用F#编写的.NET程序,文件在这里读取:System.IO.File.ReadAllLines("MyReadFile.txt")嗯。我运行xperf:xperf-onDiagEasy我停止xperf并合并到一个文件中:xperf-dmyfile.etl好的。现在我写:xperf-imyfile.etl-omyfile_stat.txt-adiskio-detail我这样做是为了获得一个包含所有文件信息的文件。显示的文件是格式化的文本文件,以便让我按文件查看磁盘统计信息。在跟踪session期间被操作的每

MySQL InnoDB 插入性能 (Windows)

我是MySQL的新手,我对InnoDB的性能有一些疑问。我有一个表,我想在其中存储一些度量,并且我正在使用存储过程中的循环测试密集插入:CREATETABLE`measures`(`Id`int(10)unsignedNOTNULL,`DT`datetimeNOTNULL,`TF1`floatDEFAULT'0',`IF1`floatDEFAULT'0',`PAF1`floatDEFAULT'0',`PRF1`floatDEFAULT'0',`CF1`floatDEFAULT'0',`TF2`floatDEFAULT'0',`IF2`floatDEFAULT'0',`PAF2`floa

Windows posix 套接字性能

我正在寻找有关Windows网络编程的信息。主要是如何获取单个可执行文件来应对1000个连接。我们在unix上使用select()FD_ISSET等,这工作起来非常快。在Windows上,这些API非常糟糕。FD_SET慢很多,但即使解决这个问题,Windows也比HPUX慢很多。我正在寻找一个win32API调用,我可以使用它来代替不需要太多CPU/时间的select()调用。目前我们将50%的时间(和CPU)花在select()上,而在unix上,花在send()和recv()上的时间是我所期望的。谢谢尼尔 最佳答案 您可能正在

c# - 2 AverageTimer32 性能计数器

如何在一个应用程序(.exe)中定义和使用两个AverageTimer32性能计数器?附加说明:我正在尝试衡量在操作的不同部分花费的时间。我有一个AverageTimer32性能计数器和一个AverageBase。它有效。现在我想添加第二个AverageTimer32性能计数器。即使我添加另一个AverageBase计数器,它也不起作用。我想我弄错了什么。非常感谢代码示例。这是代码的不同部分:_AverageDuration=newPerformanceCounter();_AverageDuration.CategoryName=CategoryName;_AverageDurati

c++ - 提高端口扫描器性能

所以我今天早上用C++做了一个端口扫描器,它似乎工作正常,只是有一个相当烦人的问题——每当我用它扫描网络上的IP时,它需要10-20秒PER端口。似乎是connect()方法花费了这么长时间。现在除了多线程,我确信它会加快进程但不会太多,我怎样才能让它更快?这是执行扫描的代码部分:for(i=0;i如果您需要更多信息,请告诉我。还有,我正在使用winsock2.h文件。是不是因为这个才这么慢? 最佳答案 当您调用connect(2)时,操作系统会启动three-wayhandshake通过发送一个SYN数据包给另一个对端。如果没有收

c - 获取 CPU 型号名称、供应商 ID、Windows C 中的物理处理器数量

我看到了this主题,但我没有提供我需要的所有信息。是否有任何可移植的方式(仅限所有Windows的可移植)来获取cpu型号名称、供应商ID和物理处理器的数量? 最佳答案 您提供的链接适用于Windows的移动版本,因此如果您所说的可移植版本也指桌面版本,那么GetSystemInfo可用于(如所述)Window2000及更高版本的所有版本。如果您需要比这更旧的版本,那么您应该给出一些限制。 关于c-获取CPU型号名称、供应商ID、WindowsC中的物理处理器数量,我们在StackOv

c# - 如何从 c# 应用程序获取远程 linux 机器的 cpu 和 ram 使用情况

我有一个c#应用程序,它通过WMI从远程Windows机器收集数据(cpu、ram、硬盘使用情况等)。但现在我还需要监控几个linux机器。有没有办法从运行在Windows机器上的c#应用程序中至少获得Linux机器的CPU和RAM利用率? 最佳答案 我设法从linuxbox获取指标统计信息。正如VirtualBlackFox提到的那样-标准化的方法是为此目的使用snmp。第一步是在linux上安装snmp。(我在VM上安装了Ubuntu12)这是我用来安装snmp的链接one和two.基本上,您需要安装snmp守护进程并配置公开指

c++ - 如何在 Windows 内核模式下获取进程使用的 CPU 时钟周期?

正如标题所暗示的,我对获取仅在内核模式下进程使用的CPU时钟周期很感兴趣。我知道有一个名为“QueryProcessCycleTime”的API可以返回CPU时钟进程的线程使用的周期。但这个值包括在用户模式和内核模式下花费的周期。我怎样才能获得仅在内核模式下花费的周期?我需要使用性能计数器来获取它吗?如果是,我应该使用哪一个?预先感谢您的回答。 最佳答案 我刚刚发现一篇有趣的文章,几乎描述了您的要求。在MSDNInternals上.他们在那里写道,如果您使用的是C#或C++/CLI,您可以轻松地从System.Diagnostic.