问题标签 [cpu-speed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何检测 Windows 64 位的 CPU 速度?
我从这里找到了以下代码“http://www.boyet.com/Articles/CodeFromInternet.html "。
它以 GHz 为单位返回 CPU 的速度,但仅适用于 32 位 Windows。
我搜索了 64 位管理类,但没有成功。
有没有其他方法可以在 64 位 Windows 下获得 CPU 速度?
performance - 现代 CPU 到底有多“快”?
当我曾经对嵌入式系统和早期的 8/16 位 PC(6502、68K、8086)进行编程时,我对每条指令执行所需的时间(以纳秒或微秒为单位)有很好的把握。根据系列,一个(或四个)周期相当于一个“内存获取”,并且无需担心缓存,您可以根据所涉及的内存访问次数猜测时间。
但是对于现代CPU,我很困惑。我知道它们要快得多,但我也知道如果不知道每条指令需要多少个时钟周期,标题千兆赫的速度是没有帮助的。
因此,任何人都可以为(假设)2GHz Core 2 Duo 上的两个示例指令提供一些时间。最好和最坏的情况(假设缓存中没有任何内容/缓存中的所有内容)将很有用。
指令#1:将一个 32 位寄存器加到一秒。
指令 #2:将 32 位值从寄存器移动到内存。
编辑:我问这个的原因是尝试开发一个“经验法则”,它可以让我查看简单的代码并粗略地衡量最接近的数量级所花费的时间。
编辑#2:有很多有趣的答案,但没有人(还)写下一个及时测量的数字。我很欣赏这个问题有“复杂性”,但是来吧:如果我们可以估计NYC 的钢琴调音师的数量,我们应该能够估计代码运行时间......
采取以下(愚蠢的)代码:
我们如何估算运行... 1 飞秒需要多长时间?1 千兆年?
low-level - 可以使用寄存器的增量来确定时钟速率吗?
可以使用寄存器的增量(在循环中)来确定(有效)时钟速率吗?我很自然地认为它可以,但有人评论说 Cpu 可能会植入超标量技术,使这种计算变得无用。另外有人告诉我,CPU 上的寄存器的递增可以在不到一个时钟周期内完成。
是真的吗?
performance - CPU 利用率
Q1。编写不消耗 CPU 但仍能实现出色性能的代码的最佳实践是什么?这个问题非常笼统。我在这里寻求的是列出用于不同环境的不同实践?进程监视器/任务管理器之外的调试技巧
编辑:我不是在说 IO 绑定进程。我说的是 CPU 绑定进程。但是,在这里我不希望我的进程继续占用 CPU。如果我有一个 4 核机器并且如果我在一个进程中运行四个简单的循环,CPU 消耗会飙升到 400%,直到应用程序/进程运行。
我在这里寻求一些关于这个话题的经验,每个人都会在一段时间内遇到过。例如,当应用程序在 Windows 上占用 CPU 时,我进行了调试,因为它不断循环以搜索不存在的文件。
如何以两种不同的 CPU 绑定应用程序平稳运行(给出良好响应)的方式编写我的程序?
更新: 建议:
编写好的干净代码,然后分析您的应用程序,然后进行优化。(感谢泰德的提示)
重写/重新设计/重构代码比分析和修复代码更容易。
使用分析器调试您的应用程序
不要对等待时间长的线程使用自旋锁
算法选择
这些建议对初学者理解这些概念大有帮助。
optimization - 优化代码会变得不必要吗?
如果摩尔定律成立,并且 CPU/GPU 变得越来越快,那么软件(以及相关的软件开发人员)是否仍会突破界限,以至于您仍需要优化代码?或者一个天真的阶乘解决方案是否足以满足您的代码(等)?
optimization - 不等式运算符比等式运算符快吗?
我知道这是一个微优化,所以我纯粹出于好奇而问。
从逻辑上讲,微处理器不需要比较相等运算符的两个操作数的所有位来确定“假”结果。
请注意,这是与编程相关的,因为它会影响程序的执行速度。
python - 使用 Python (Bash?) 获取操作系统级别的系统信息(CPU 速度)
我想用 python重复这个问题。原因是我可以访问集群中的 10 个节点,并且每个节点都不相同。它们的性能范围很广,我想根据可用的内存和 cpu 速度/内核来找到最适合远程使用的计算机。
编辑:哎呀,即使只是一个命令行界面也会很有用。任何快速而肮脏的解决方案?
multithreading - 比较 CPU 速度可能提高业务硬件升级的理由
我有 c# Console 应用程序,蒙特卡洛模拟完全受 CPU 限制,执行时间与可用的专用线程/内核的数量成反比(我在内核/线程之间保持 1:1 的比率)。
它目前每天在以下时间运行:
AMD 皓龙 275 @ 2.21 GHz(4 核)
该应用程序是使用 3 个线程的多线程,第 4 个线程用于另一个 Process Controller 应用程序。
每天需要运行 15 个小时。
我需要尽我所能估计在配置有以下 CPU 的系统上运行相同的工作需要多长时间:
并比较案例,我将使用可用线程对其进行重新编码。我想证明我们需要一个具有 2 个 x5570 CPU 的服务器而不是更便宜的 x5540(它们在单个主板上支持 2 个 CPU)。这应该使操作系统可以使用 8 个内核、16 个线程(我相信 Nehalem 芯片就是这样工作的)。所以对于我的应用程序来说,蒙特卡洛模拟有 15 个线程。
任何想法如何做到这一点?有没有一个网站可以让我查看单线程基准测试所涉及的所有 3 个 CPU 的基准测试数据?然后我可以推断我的情况和线程数。如有必要,我可以访问当前系统来安装和运行基准测试。
请注意,企业还规定该应用程序在未来 3 个月内的工作量将增加约 20 倍,并且需要在 24 小时内完成。
非常感谢任何帮助。
也在这里发布了这个:http: //www.passmark.com/forum/showthread.php? t= 2308 希望他们能更好地解释他们的基准测试,这样我就可以有效地获得每个核心的分数,这将更有帮助。
android - Android游戏循环,如何控制速度和帧率
我为Android写了一个游戏,我在Dev Phone 1上测试过。它运行完美,速度刚刚好。但是,我确信手机 CPU 的速度会越来越快。它们可能已经比开发手机更快了。
无论使用什么设备或运行速度有多快,我如何确保我的游戏以完全相同的速度运行?你知道什么技巧吗?我应该每次在循环顶部检查某种计时器吗?
我想我指的是帧速率——但主要是我的游戏在主游戏循环中运行的速度。
任何理论或经验都会很棒!谢谢你。
c++ - 如何在 C++ (Linux) 中获得 CPU 时钟速度?
如何在 C++ 中获得 CPU 时钟速度?
如果这有什么不同,我正在运行 Ubuntu 9.10。