问题标签 [cpu-usage]

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.

0 投票
1 回答
7274 浏览

mysql - 如何计算 MySQL 查询内存/CPU 成本

有没有一种方法/工具/技术来计算特定 MySQL 查询的处理器和内存成本?

0 投票
2 回答
1038 浏览

sql-server - SQL Server 2005 中的活动监视器问题

我正在查看 SQL Server 2005 的 Activty Monitor,我们有一些进程占用了大量的 CPU。当我查看正在尝试运行的内容时,我得到:

此代码并非来自我们的任何应用程序。

是什么原因造成的?

应该做什么?

0 投票
4 回答
9357 浏览

webserver - 关于 Web 开发的一些基本但重要的问题?

到目前为止,我已经使用 PHP、Python 和 Java 开发了一些基于 Web 的应用程序。但是一些基本但非常重要的问题仍然超出我的知识范围,所以我发了这篇文章来寻求你们的帮助和澄清。

假设我使用某种编程语言作为我的后端语言(PHP/Python/.Net/Java 等),并使用 Web 服务器(apache/lighttpd/nginx/IIS 等)部署我的应用程序。假设在时间 T,我的一个页面同时收到了来自不同用户的 100 个请求。所以我的问题是:

  1. 我的 Web 服务器如何处理这 100 个并发请求?Web 服务器会为每个请求生成一个进程/线程吗?(如果是,进程或线程?)
  2. 后端语言的解释器是怎么做的?它将如何处理请求并生成正确的 html?解释器会为每个请求生成一个进程/线程吗?(如果是,是进程还是线程?)
  3. 如果解释器会为每个请求生成一个进程/线程,那么这些进程(线程)呢?他们会共享一些代码空间吗?他们会互相交流吗?如何处理后端代码中的全局变量?或者它们是独立的进程(线程)?进程/线程的持续时间是多久?当请求被处理并返回响应时,它们会被销毁吗?
  4. 假设 Web 服务器只能支持 100 个并发请求,但现在它得到了 1000 个并发请求。它如何处理这种情况?它会像队列一样处理它们并在服务器可用时处理请求吗?还是其他方法?
  5. 这些天我读了一些关于彗星的文章。而且我发现长连接可能是处理实时多用户用例的好方法。那么长连接呢?它是某些特定 Web 服务器的功能还是适用于每个 Web 服务器?长连接需要一个长期存在的解释器进程吗?

编辑:最近我读了一些关于 CGI 和 fastcgi 的文章,这让我知道 fastcgi 的方法应该是处理请求的典型方法。

该协议在多个独立的 FastCGI 请求之间多路复用单个传输连接。这支持能够使用事件驱动或多线程编程技术处理并发请求的应用程序。

引自fastcgi 规范,其中提到可以处理多个请求的连接,并且可以在多线程技术中实现。我想知道这个连接可以被视为进程,它可以为每个请求生成多个线程。如果这是真的,我对如何处理每个线程中的共享资源变得更加困惑?

PS感谢托马斯将帖子分成几个帖子的建议,但我认为这些问题是相关的,最好将它们组合在一起。

感谢 S.Lott 的精彩回答,但每个问题的一些答案太简短或根本没有涵盖。

感谢大家的回答,让我更接近真相。

0 投票
6 回答
12110 浏览

perl - 控制 perl 脚本的 CPU 利用率?

我正在根据我的 Perl 脚本的多次迭代中的标准进行大量文件搜索,它似乎占用了 100% 的 CPU 时间。有没有办法控制我的脚本 CPU 利用率?我在某处读到关于在我的脚本中放置空睡眠周期的内容。但我不知道该怎么做。

0 投票
1 回答
352 浏览

c - CPU-Core线程分类功能

我将编写一个多线程共享内存消息传递系统,用于进程之间的超大容量消息传递。消息将来自网络服务器的工作线程。我想利用同一 CPU 共享上的内核的 CPU 缓存位置。因此,当我在这个 IPC 系统的接收端唤醒一个工作线程时,我会唤醒同一个 CPU 上的一个线程。

我需要Linux(最好是一般的POSIX)和windows API调用和我需要做的位掩码来提取信息,这些信息将让我使用以下结构从所述线程的上下文中对正在执行的线程ID进行分类:

两个平台的功能将不胜感激。我希望这可以在没有系统调用的情况下完成——即上下文切换。

- 编辑 -

我目前专注于 x86,但其他架构也会很有用。

0 投票
2 回答
1032 浏览

excel - 通过 RDP 监控 Excel 电子表格是否会使其变慢?

我们有一个庞大的电子表格,它进行了大量的计算并且没有太多的绘图/写入电子表格

我的问题是:在通过 RDP 运行电子表格时监控电子表格是否实际上会使这变慢?

换句话说,如果 rdp 断开连接,这会提高速度吗?

0 投票
6 回答
33716 浏览

java - java cpu使用监控

有没有办法使用纯 Java 监控 CPU 使用率?

0 投票
1 回答
512 浏览

cpu-usage - 如何从 CPU 时间到 CPU 利用率?

我试图在我自己的应用程序中识别出一个失控的线程,并在它们使机器无法访问之前永久关闭它们。

但是,我只能获得线程的 CPU 时间,这是我使用的 API 的限制。有没有办法从这些数据中评估 CPU 利用率?

我正在考虑将它与实时进行比较,如果它很接近 - 比那个线程加载 CPU 太多。您如何看待这种启发式方法,它会起作用吗?

0 投票
5 回答
4485 浏览

c++ - 减慢线程的最佳方法?使用 Sleep() 可以吗?

我编写了一个 C++ 库,它可以完成一些非常繁重的 CPU 工作(所有这些都是数学和计算),如果留给它自己的设备,很容易消耗 100% 的所有可用 CPU 资源(它也是多线程的可用逻辑的数量机器上的核心)。

因此,我在主计算循环中有一个回调,使用该库的软件应该调用该回调:

在回调中,客户端调用 Sleep(x) 来减慢线程。

最初,客户端代码是一个固定的 Sleep(100) 调用,但这会导致性能不可靠,因为有些机器比其他机器更快地完成数学运算,但所有机器上的睡眠都是相同的。所以现在客户端检查系统时间,如果超过 1 秒(这 == 几次迭代),它将休眠半秒。

这是减慢线程速度的可接受方式吗?我应该使用信号量/互斥体而不是 Sleep() 以最大限度地提高性能吗?每 1 秒的处理工作正常睡眠 x 毫秒还是有什么我没有注意到的错误?

我问的原因是,即使 taskman 显示该进程占用了大约 10% 的 CPU,机器仍然严重陷入困境。我已经探索过硬盘和内存争用无济于事,所以现在我想知道我减慢线程的方式是否导致了这个问题。

谢谢!

0 投票
3 回答
9314 浏览

c - 我如何像“top”命令一样获得每个 cpu 的统计信息(系统、空闲、nice、...)?

在 linux 上,我想知道调用什么“C”API 来获取每个 CPU 的统计信息。

我知道并且可以/proc/loadavg从我的应用程序中读取,但这是系统范围的负载平均值,而不是每个 CPU 的信息。我想将各个 CPU 或内核区分开来。

作为执行此操作的应用程序的示例,当我运行top并按“1”时,我可以看到 4 或 8 个处理器/内核,如下所示:

我试过了,strace top但这导致了老鼠的巢穴。