问题标签 [cpu]
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.
linux - top 命令的 CPU 使用率计算
我正在尝试使用 GNU coreutil top 的公式来计算 CPU 使用率的百分比。但是 top 使用一些 half_total 来计算百分比,即在百分比上增加 0.5。
在 top 的source的 utils.c 中,以下行(在 3.8 beta1 中,在行号:459 中):-
*out++ = (int)((*diffs++ * 1000 + half_total) / total_change);
这转换为: ( (*diffs++ * 1000) / total_change ) + 1/2 所以,它总是给出一个数字,即:“10 倍百分比,加上 0.5”。所以如果百分比是 x,它将返回 10x+0.5。
谁能解释这个平均值是如何计算的?或者至少有一些我可以得到帮助的指针?
PS:为什么我们不能只用(*diffs++/total_change) * 100
得到所需的百分比?
Top的源代码位于:- http://downloads.sourceforge.net/unixtop/top-3.8beta1.tar.gz?modtime=1210117842&big_mirror=0
cpu - 多核架构的出现会影响我作为软件开发人员吗?
作为一个主要处理高级编程语言的软件开发人员,我不确定我能做些什么来适当地关注即将到来的多核计算机的普遍存在。我主要编写普通且要求不高的应用程序,但我认为了解是否需要更改任何编程范式甚至语言以掌握未来很重要。
因此,我的问题是:
How to deal with increasing multicore presence in day-by-day hacking?
java - 二维数组是否比 Java 中的一维数组使用更多资源?
例如,一个完整的 int[50][8] 会比 8 个完整的 int[50] 数组使用更多的资源(RAM 和 CPU)吗?
theory - 对程序员更深入地了解 CPU 有何价值?
我最近突然想到,我(我认为大多数人)从 Visual Basic 之类的东西开始学习计算机编程。我开始怀疑我们是否先从较低级别开始,如果现在更容易。
作为一个程序员,你认为理解 CPU 的工作原理、基本指令之类的东西有什么价值吗?我的意思是,我们最终不是真的在谈论它吗?
如果我们从 CPU 级别开始并从那里开始教授,我们可能会发现我们可以更容易地理解如何在更高级别上操作它。
hardware - 双处理器机器如何处理中断?
我对双核 CPU 如何处理中断有所了解。我想知道如何在具有多个物理处理器的板上实现中断处理。
任何中断责任是否由物理板的配置决定?每个处理器都必须能够处理某些类型的中断,例如磁盘 I/O。除非有一些电路来管理和分配中断到适当的处理器?我的猜测是该方案必须是处理器中立的,以便任何处理器和内核都可以运行中断处理程序。
如果一个内核正在等待磁盘读取,那么当磁盘准备好时,该内核会是运行中断处理程序的内核吗?
64-bit - 64位处理器有什么优势?
显然,64 位处理器具有 64 位地址空间,因此您可以使用超过 4 GB 的 RAM。将相同的程序编译为 64 位并在 64 位 CPU 上运行是否有任何其他优势可能实际上有益于那些不是巨大内存占用的程序?
我问的是一般的 CPU,特别是与 Intel 兼容的 CPU。
.net - winforms 分析 - dotTrace 3.1 或 Ants 4.3
是否有任何特定功能可以帮助我决定为 Winforms 应用程序购买哪个功能。
我正在寻找内存、cpu、性能瓶颈。
.net - 具有命令行支持的 Win64 下 .NET 3.5 的可靠 CPU 分析器?
我正在寻找一个支持 .NET 的 CPU 分析器
- 大量线程的应用程序。
- (双)四核 CPU。
- 抽样分析。
- 64 位操作系统。
- 命令行 API。
目前,我在使用大多数 .NET 分析器时遇到了麻烦,特别是,
- YourKit 似乎不支持命令行。
- dotTrace 3.1 因 64 位操作系统而崩溃。
到目前为止,我还没有尝试过 Intel VTune。有什么开明的建议吗?
language-agnostic - 避免处理器中的时序问题
我正在编写一个(非常缓慢和原始的)处理器的模拟。
例如:假设时钟速度是恒定的 1 hz。我假设这意味着每秒可以/将处理 1 条指令。有些指令比其他指令需要更长的时间。添加 1 + 0 比 1 + 7 花费更少的时间。(后者会导致进位位的波动,这需要非零的时间量。)
只有在所有其他指令完成后,我才需要能够执行指令。
我需要:
- time 最长指令需要多长时间并将时钟速度设置为大于该时间?
- 创建一个有状态的观察者,在前一个指令完成之前不允许执行未来的指令
- 我完全误解了这个问题吗?
在#1中,似乎我仍然冒着在下一个开始之前指令不完整的竞争条件的风险。在 #2 中,似乎我冒着不可预测/可变时钟速度的风险,这可能会导致我以后出现问题。
我该如何解决这个问题?有没有关于真正的处理器如何处理这个问题的提示?
macos - OSX 上的 Eclipse RCP - 如何停止记录到系统日志?
我们的 RCP 应用程序记录了相当多的日志,但只有 INFO 及更高版本输出到控制台。在 windows/linux 上这没问题,但在 OSX 上,所有日志记录似乎都传递给 syslogd,然后它决定记录什么而不记录什么,这意味着处理成千上万的 FINEST 日志消息,这使得 syslogd 使用 140% cpu 和 gobble内存。运行我们的应用程序大约 3 分钟后,syslogd 使用了 2.5gb 的内存,整个系统变得无法使用。杀死 syslogd/rebooting 是唯一的治疗方法。从控制台启动应用程序使其直接登录到控制台,没有问题。
如何停止 syslogd 处理我在 OSX 上的 RCP 日志记录?