问题标签 [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 投票
4 回答
683 浏览

php - 是否可以在 PHP 的内存 (RAM) 中保留变量?

我正在研究 PHP 中网站的高性能编码,这个想法突然出现在我的脑海中:

我们知道访问数据库会占用大量 CPU,因此我们缓存这些数据,将其保存到 HDD。但我想知道,它不能放在服务器的 RAM 中,所以我可以更快地访问它

0 投票
2 回答
666 浏览

c# - 如何在 C# 中设置一个线程仅在 CPU 空闲时执行?

我在 C# 中有一个 Windows 服务。我希望某个线程执行特定操作,但仅在 CPU 空闲时。有没有办法在 C# 中做到这一点。

0 投票
2 回答
5055 浏览

python - Python/PySerial 和 CPU 使用率

我创建了一个脚本来监视串行端口的输出,该串行端口每半小时接收 3-4 行数据 - 脚本运行良好并抓取从端口出来的所有内容,这在一天结束时才是最重要的.. .

然而,让我感到困扰的是,对于只监视单个串行端口的程序来说,cpu 使用率似乎相当高,当这个脚本运行时,1 个内核将始终处于 100% 的使用率。

我基本上在这个问题中运行代码的修改版本:pyserial - How to Read Last Line Sent from Serial Device

我尝试过定期轮询 inWaiting() 函数,并在 inWaiting() 为 0 时让它休眠 - 我尝试了从 1 秒到 0.001 秒的间隔(基本上,在不提高 CPU 使用率的情况下,我可以尽可能频繁地使用) - 这将成功抓取第一行,但似乎错过了其余数据。

调整串口的超时时间似乎对 cpu 的使用没有任何影响,将监听功能放到它自己的线程中也没有(不是我真的期望有区别,但值得一试)。

  • python/pyserial 应该使用这么多 cpu 吗?(这似乎有点矫枉过正)
  • 我是否在这个任务上浪费了时间/我是否应该硬着头皮安排脚本在我知道不会有数据到来的时间段内休眠?
0 投票
7 回答
13558 浏览

vb.net - 如何在while循环中限制CPU使用率

你如何限制while循环的CPU?

在这种情况下,while 循环内的代码:

但是现在,问题来了。此循环允许 while 循环每秒运行一次,并且waitsub 会导致此延迟,因为它应该。

如何限制这占用的 CPU?出于某种原因,我的任务管理器说运行这个简单的任务需要 50 个 CPU,但它可能需要不超过 1 或 2 个。虽然经理说它需要那么多 CPU,但我的计算机速度并没有受到影响所有,考虑到它是一台使用了两年的笔记本电脑,这很奇怪。

我不希望任何用户对此感到害怕,但要知道这些天人们的状况......

无论如何,语言是vb.net。有人可以帮帮我吗?

谢谢!

编辑:澄清一下,该代码不在while循环本身内,而是对子例程的调用,即wait(1000)

0 投票
3 回答
2963 浏览

asp.net - ASP.NET HttpWebRequest 停止发送请求,CPU 使用率高

我有一个旧的 ASP.NET 应用程序。我们将 httpWebRequest 发送到远程 REST 服务器并取回 XML,大多数情况下应用程序运行良好。最近,我们每天都会遇到几次 CPU 使用率过高的问题。

在 CPU 使用率较高期间,我们监控了这些 httpWebRequest 连接(通过检查 w3wp 进程的 netstat)。一开始,连接从“ESTABLISHED”变为“CLOSE_WAIT”状态,然后这些连接超时后,这些连接一个接一个消失,然后再没有连接。

重置 IIS 后,当 w3wp.exe 进程再次启动时,我们仍然找不到与 httpWebRequest 目标服务器的任何连接。所以CPU使用率一直保持在高水平。即使经过几轮reset,也无法解决问题,直到我们看到一些连接开始连接到httpWebRequest目标服务器,CPU使用率下降了。

我实际上认为这可能是我的代码没有正确处理 httpWebRequest 的问题,我在这里发布了另一个问题:如何在捕获 httpwebrequest 超时后关闭底层连接?.

正如那个问题中提到的,我还发现了很多System.Net.HttpWebRequest.GetResponse(). 当 CPU 使用率真的很高时,我们在 5 分钟内发现了 3500 个相同的异常。

什么可以引起这种类型的问题,什么可能是药物?为什么应用程序不再发送请求(因为 netstat 中没有连接)?

以下是源代码以防万一:

0 投票
7 回答
34065 浏览

c++ - 如何在 Windows (win32) 上获取每个线程的 cpu 使用率

寻找 Win32 API 函数、C++ 或 Delphi 示例代码,告诉我线程的 CPU 使用率(百分比和/或总 CPU 时间)(而不是进程的总数)。我有线程 ID。

我知道 Sysinternals Process Explorer 可以显示此信息,但我需要在我的程序中使用此信息。

0 投票
3 回答
13365 浏览

vb6 - 如何在 VB 6 中获取当前的 CPU 和 RAM 使用情况?

如何在 VB 6 代码中获取 CPU 和内存使用情况?谢谢!

0 投票
12 回答
167515 浏览

c - 如何从 C 中通过 PID 在 Linux 中计算进程的 CPU 使用率?

我想以编程方式 [在 C 中] 计算 Linux 中给定进程 ID 的 CPU 使用率。

我们如何获得给定进程的实时 CPU 使用百分比?

为了进一步明确:

  • 我应该能够确定提供的 processid 或进程的 CPU 使用率。
  • 该进程不必是子进程。
  • 我想要'C'语言的解决方案。
0 投票
4 回答
1040 浏览

c - 在 OS X 中获取 CPU 时间

我有一个用于 OS X 的 Objective-c 应用程序,它比较两个 sqlite DB 并生成 json 格式的差异。数据库非常大(10,000 个项目,包含许多字段)。有时这个应用程序运行大约 55 秒(使用 95% 的 cpu)。有时大约需要 8 分钟(使用 12% 的 cpu)。这是相同的数据库。当它只使用一小部分 cpu 时,其余部分可用。似乎没有任何事情优先于该过程。在命令上添加“nice -20”似乎可以确保我得到 cpu 使用率。我的问题是

  1. 如果没有其他东西在使用 cpu,为什么我的应用程序不利用它?

  2. 我可以通过编程方式做些什么来改变这一点吗?

  3. 我可以对 OS X 做些什么来改变这一点吗?

0 投票
5 回答
1640 浏览

.net - 为什么 .NET 使用这么多 CPU,这是一个问题吗?

(这是一个一般性的假设性问题,我抱怨 .NET 是一头猪,并乞求理由。这并不是关于我的特定应用程序的问题。)

目前我正在用 C# 重写一些旧的 C++ 代码。我们正在移植所有遗留应用程序。我有占用 MAX 3% CPU 的 C++ 应用程序。大多数情况下,他们没有使用。然后我获取代码,复制和粘贴,然后重新格式化为 C# 语法和 .NET 库,然后 BAM!50% 中央处理器。这是什么原因?起初我以为是 JIT,但即使在每个代码路径都经过练习之后,整个事情都是 JIT 编辑的,同样的问题。

我还注意到巨大的内存增加。运行满负载需要 9 MB 的应用程序现在以 10 MB 启动并以 50 MB 运行。我意识到硬件很便宜,但我想了解是什么原因造成的。这是引起恐慌的原因,还是 .NET 就是这么一头猪?

更新 1 对 Skeet 的回答

我熟悉 C#。我将事情更改为 Linq,等等。我通常采用代码并减少行数,等等。您能否提供更多示例说明我在 .NET 中做错了什么?

更新 2

这是一个普遍的问题,但有问题的特定应用程序如下。

它有一个线程,使用 ODBC 驱动程序从 paradox db 获取数据。然后它使用 Linq 将其转换为 SQL 数据库并发布。我已经通过 ANTS 分析器运行它,似乎数据集填充花费的时间最多。紧随其后的是 Linq 发帖。我知道我的一些领域是反射使用,但我不知道如何做我需要做的事情。我计划将我的字符串更改为字符串生成器。这两者有什么区别吗?

我将所有字符串连接更改为格式化字符串。这并没有减少开销。有人知道数据阅读器与数据适配器和数据集之间的区别吗?