cpu-cycles相关内容

为什么 RDTSC 不是序列化指令?

关于 RDTSC 指令的英特尔手册警告说乱序执行RDTSC 实际执行时可以改变,所以他们建议在它前面插入一条 CPUID 指令,因为 CPUID 会序列化指令流(CPUID 永远不会乱序执行).我的问题很简单:如果他们有能力使指令序列化,他们为什么不进行 RDTSC 序列化?它的全部意义似乎是获得周期准确的计时.是否存在您不想想在它前面加上序列化指令的情况? 较新的 Intel CPU 有一 ..
发布时间:2022-01-06 13:01:20 其他开发

在 Win32 中如何获取 CPU 周期数?

在 Win32 中,有没有办法获得唯一的 cpu 周期计数或类似的东西,以便对多个进程/语言/系统/等进行统一. 我正在创建一些日志文件,但必须生成多个日志文件,因为我们托管 .NET 运行时,我想避免从一个调用到另一个来记录.因此,我想我只需要生成两个文件,将它们组合起来,然后对它们进行排序,以获得涉及跨世界调用的连贯时间线. 但是,GetTickCount 不会每次调用都增加,所以 ..
发布时间:2021-12-31 15:45:26 其他开发

每条汇编指令需要多少个 CPU 周期?

我听说网上有一本 Intel 的书,它描述了特定汇编指令所需的 CPU 周期,但我找不到(经过努力).谁能告诉我如何找到 CPU 周期? 举个例子,在下面的代码中,mov/lock是1个CPU周期,xchg是3个CPU周期. //这部分是平台相关的!#ifdef WIN32内联 int CPP_SpinLock::TestAndSet(int* pTargetAddress,int nVa ..
发布时间:2021-11-30 11:08:45 其他开发

等待字符串相等的正确方法

在Swing应用程序中,仅当用户输入正确答案后,方法才应继续.正确答案存储在String中,而用户答案由侦听器设置为另一个String.因此,代码是 while (!correctAnswer.equals(currentAnswer)) { // wait for user to click the button with the correct answer typed int ..
发布时间:2020-07-20 19:31:20 Java开发

关于使用CPU时钟测量时间的问题

我知道在各种操作系统上使用CPU时钟计数器获取时间增量的标准方法.我的问题是,出于节能目的,这样的操作系统如何考虑CPU频率的变化.最初,我认为这可以基于以下事实来解释:操作系统使用特定的调用来测量频率,以根据使用的内核,当前设置的频率等获得校正的频率,但是后来我意识到,这不是事实如果在两个时钟查询之间将CPU频率降低并提高回原始值,则使时间增量不准确. 例如,采取以下情形: 查询CP ..
发布时间:2020-07-20 19:31:17 其他开发

测量进程消耗的CPU时钟

我已经用C编写了一个程序.它是根据研究创建的程序.我想计算程序消耗的确切CPU周期.确切的循环数. 知道如何找到它吗? 解决方案 valgrind工具cachegrind(valgrind --tool=cachegrind)将为您提供详细的输出,包括执行的指令数,高速缓存未命中和分支预测未命中.这些可以归结为汇编程序的各个行,因此原则上(了解您的确切体系结构)您可以从此输出中得出精确的周 ..
发布时间:2020-07-20 19:31:15 其他开发

各种操作的大概CPU周期数

我正在尝试查找各种​​操作大约需要多少个CPU周期的参考. 我不需要确切的数字(因为这在CPU之间会有所不同),但是我想要一些相对可信的东西,它可以提供与朋友讨论时可以引用的大致数字. 作为一个例子,我们都知道浮点除法比进行位移位要花费更多的CPU周期. 我猜想区别是除法大约是100个周期,其中1个班次为1个周期,但我正在寻找可以援引该结论的东西. 任何人都可以推荐这样的资 ..
发布时间:2020-07-20 19:30:12 其他开发

执行长字传输到CPU所需的周期数和大小大小

该任务是针对ColdFire处理器MCF5271体系结构的: 我不知道将长字传输到CPU或字传输需要多少个和多少个大小周期.我正在阅读图表,看不到连接是什么?任何评论都非常感谢.我已附上2个示例,并给出了答案. 数据总线大小 解决方案 同一章中的表17-2显示了受支持的传输大小(由称为TSIZ [1:0]的信号指定). A [0]和A 1 地址信号指定传输的对齐方式.内存 ..
发布时间:2020-07-20 19:30:08 其他开发

如何获得Win32中的CPU周期计数?

在Win32中,有没有办法获得唯一的cpu周期计数或类似的结果,这些计数对于多个进程/语言/系统/等都是统一的. 我正在创建一些日志文件,但是由于我们要托管.NET运行时,因此必须生成多个日志文件,并且我希望避免从一个调用另一个到另一个来记录日志.因此,我当时想只生成两个文件,将它们组合在一起,然后对它们进行排序,以获得涉及跨世界调用的连贯时间表. 但是,GetTickCount不会在 ..
发布时间:2020-07-20 19:29:02 其他开发

关于仿真CPU时周期计数准确性的问题

我计划在接下来的几个月中创建一个Sega Master System模拟器,这是Java的一个业余项目(我知道这不是最好的语言,但是我觉得工作起来非常舒适, Windows和Linux的经常使用者,我认为跨平台的应用程序会很棒).我的问题是关于循环计数; 我已经查看了另一个Z80模拟器以及其他模拟器的源代码,尤其是execute循环引起了我的兴趣-调用它时,将int作为参数传递(比如说100 ..
发布时间:2020-07-20 19:28:59 其他开发

RDTSC为什么不是序列化指令?

有关RDTSC指令的英特尔手册警告说,乱序执行当实际执行RDTSC时,它可能会改变,因此他们建议在其前面插入一个CPUID指令,因为CPUID将序列化指令流(永远不会无序执行CPUID).我的问题很简单:如果他们能够进行指令序列化,为什么不进行RDTSC序列化呢?它的全部目的似乎是要获得精确的周期计时.是否有一种情况,您不要在序列化指令之前添加它? 较新的Intel CPU有一个单独的RDT ..
发布时间:2020-07-20 19:28:54 其他开发

移至分段寄存器的动作是否比移至通用寄存器的动作慢?

具体是: mov %eax, %ds 慢于 mov %eax, %ebx 还是它们的速度相同.我已经在网上进行调查,但是无法找到确切的答案. 我不确定这是否是一个愚蠢的问题,但是我认为可以修改分段寄存器可以使处理器做更多的工作. N.B我关心的是旧的x86 linux cpus,而不是现代的x86_64 cpus,在这种情况下,分段的工作方式有所不同. 通用寄存器 ..
发布时间:2020-07-01 01:09:46 其他开发

(n-乘法)与(n/2-乘法+ 2加法)哪个更好?

我有一个C语言程序,该程序具有n个乘法(具有n次迭代的单次乘法),并且发现了另一个具有n/2次迭代(1个乘法+ 2个加法)的逻辑.我知道两者都是O(n)的复杂性.但就CPU周期而言.哪个更快? 解决方案 首先遵循Dietrich Epp的第一个建议-测量(至少对于复杂的优化问题而言)是确定的唯一方法. 现在,如果您想弄清楚为什么一个比另一个要快,我们可以尝试.有两种不同的重要性能指标 ..
发布时间:2020-05-21 21:16:32 其他开发

即使RAM较慢,一个周期的指令也要占用一个周期吗?

我正在使用嵌入式RISC处理器.我有一个基本的问题要解决. CPU手册明确指出,指令ld r1, [p1](在C中:r1 = * p1)需要一个周期.寄存器r1的大小为32位.但是,内存总线只有16位宽.那么如何在一个周期内获取所有数据? 解决方案 时钟时间假定为全宽零等待状态内存.内核执行该指令所花费的时间是一个时钟周期. 有时每条指令占用不同数量的时钟周期.然后内存也相对较 ..
发布时间:2020-05-08 19:30:26 其他开发

如何在Red Hat Linux机器上设置CPU负载?

我有一个 RHEL 框,我需要将它放在适当的可变范围内CPU负载(50%-75%). 解决此问题的最佳方法是什么?有一个我不知道的程序可以执行此操作吗?我很高兴编写一些C代码来实现这一目标,但我不知道哪种系统调用会有所帮助. 解决方案 这正是您所需要的: http://weather.ou.edu/~apw/projects/stress/ 在主页上: "stress是用于PO ..
发布时间:2020-04-23 10:53:01 服务器开发

c ++的实际计算复杂度。 SQRT()

之间的CPU周期(或实质上是“速度”)有何区别 x / = y ; 和 #include x = sqrt(y); 编辑:我知道操作不等同,我只是任意地建议 x / = y 作为 x = sqrt(y) 解决方案 您的问题的答案取决于您的目标平台。假设您使用最常见的x86 cpus,我可以为您提供此链接 http: ..
发布时间:2016-10-22 19:46:42 C/C++开发

CPU周期的限制装配执行数

我有一个项目,动态加载在未知的组件实现指定接口。我不知道大会的内容和目的,其他比它实现我的接口。 我需要以某种方式限制的处理能力提供给这些组件的数量。处理器优先级是不是我要找的。我不能用秒表并分配一定的时间装配运行的服务器可能是任意忙。 最理想的,我想指定一些完全加载CPU占用独立的措施。如果需要的话我可以运行的程序集在自己的进程。 有没有办法以某种方式衡量一个给定线程的总数超过时间的CPU ..
发布时间:2015-11-27 11:02:24 C#/.NET