标签: cpu-usage

在自动回归测试中测量执行时间的最佳方法

我有一些代码,我想测量它在自动回归测试中连续运行的速度.这样做的目的是提醒我对代码所做的更改,这些更改会对性能产生负面影响.

在伪代码中,我想要这样的东西:

cpuTimer.start
runTest
cpuTimer.stop

diff = cpuTimer.getDuration

if diff > prevDiff // Perhaps to within a tolerance
    failTest
Run Code Online (Sandbox Code Playgroud)

我正在寻找ThreadMXBean#getCurrentThreadCpuTime(),但关键问题是自动化测试将在各种不同开发人员的PC上运行,并将自动进行测试,以测试具有各种硬件和服务器的服务器.能力.

这会起作用,还是数字会出错?

该问题应如何解决?有没有更好的办法?是否有这种标准的标准工具?

java testing performance automated-tests cpu-usage

6
推荐指数
1
解决办法
836
查看次数

如何在Delphi 7中的OnMouseMove事件中移动组件时减少CPU使用率?

在Delphi 7应用程序中,我想跟随鼠标移动组件.我正在做这样的事情:

procedure MyComponent.MouseMove(Sender: TObject;Shift: TShiftState; X, Y: Integer);
begin
  AnotherComponent.Top := X;
  AnotherComponent.Left := Y;
end;
Run Code Online (Sandbox Code Playgroud)

当我移动鼠标时,主核心的CPU使用率在最近的PC上达到100%.

在这种情况下,有什么想法或滴答来减少CPU使用率?

delphi components delphi-7 cpu-usage

6
推荐指数
1
解决办法
1631
查看次数

Java在Linux上使用100%的cpu

在我的linux服务器上,任何java程序(甚至是"Hello world")都使用100%的cpu而且非常慢.Id不依赖于java版本,我尝试过不同版本的openjdk和sun jdk,两者的行为都相同.我怎么能解决这个问题?

java linux cpu-usage

6
推荐指数
1
解决办法
8634
查看次数

高速缓存中的命中和未命中率以及平均时间计算

我正试图解决一个客观类型的问题,来检查.我实际上不知道正确的答案,也不知道如何得到它,需要你的帮助.谢谢 .

问题: 在某个系统中,主存储器访问时间为100 ns.缓存比主内存快10倍,并使用写入协议.如果读取请求的命中率是0.92,并且CPU生成的内存请求的85%用于读取,则剩余的用于写入; 然后考虑读写请求的平均时间是

a)14.62ns

b)348.47ns

c)29.62ns

d)296.2ns

我的工作 ::::

那么,内存访问时间= 100ns

缓存访问时间将= 10 ns(快10倍)

In order to find avg time we have a formula

Tavg = hc+(1-h)M

   where h = hit rate
     (1-h) = miss rate
       c   = time to access information from cache
        M  = miss penalty  (time to access main memory)
Run Code Online (Sandbox Code Playgroud)

直写操作:缓存位置和主存储器位置同时更新.

假设CPU生成的85%请求是读请求,15%是写请求.

Tavg = 0.85(avg time for read request)+ 0.15(avg time for write request)
     = 0.85(0.92*10+0.08*100)+0.15(avg time for write request)
Run Code Online (Sandbox Code Playgroud)

//*0.92是读取请求的命中率,但是没有给出写入请求的命中率?

如果我假设写请求的命中率与读请求的命中率相同,那么,

  = 0.85(0.92*10+0.08*100)+0.15(0.92*(10+100)+0.08*100) …
Run Code Online (Sandbox Code Playgroud)

memory computer-science cpu-usage computer-architecture

6
推荐指数
1
解决办法
5万
查看次数

Clojure core.async,任何控制该(go ...)线程池中线程数的方法?

默认情况下(go ..)将使用两倍的核心数+ 42个 线程用于线程池.有什么办法可以通过设置环境变量或者sth设置线程数或代码可以使用的CPU数量吗?

在linux机器上,我可以使用taskset设置CPU的数量,例如 taskset -c 0,1 my_Java_or_Clojure_program,虽然taskset似乎对返回的数字没有效果(-> (java.lang.Runtime/getRuntime) .availableProcessors).

multithreading clojure cpu-usage core.async

6
推荐指数
2
解决办法
2859
查看次数

简单的C++ SFML程序高CPU使用率

我目前正在开发平台并尝试实现时间步长,但对于超过60的帧速率限制,CPU使用率从1%上升到25%甚至更高.

我制作了这个最小程序来演示这个问题.代码中有两条注释(第10-13行,第26-30行)描述了问题以及我测试过的内容.

请注意,FPS的东西与问题无关(我认为).

我试着让代码简洁明了:

#include <memory>
#include <sstream>
#include <iomanip>
#include <SFML\Graphics.hpp>

int main() {
  // Window
  std::shared_ptr<sf::RenderWindow> window;
  window = std::make_shared<sf::RenderWindow>(sf::VideoMode(640, 480, 32), "Test", sf::Style::Close);
  /*
  When I use the setFramerateLimit() function below, the CPU usage is only 1% instead of 25%+
  (And only if I set the limit to 60 or less. For example 120 increases CPU usage to 25%+ again.)
  */
  //window->setFramerateLimit(60);

  // FPS text
  sf::Font font;
  font.loadFromFile("font.ttf");
  sf::Text fpsText("", font, 30);
  fpsText.setColor(sf::Color(0, 0, 0));

  // FPS …
Run Code Online (Sandbox Code Playgroud)

c++ cpu frame-rate cpu-usage sfml

6
推荐指数
1
解决办法
3385
查看次数

最简单的方法来模拟最大CPU负载?

我必须测试嵌入式计算机的最极端条件下产生的热量和电流消耗,为此我想编写一个程序,尽可能多地使用CPU资源的四核CPU(每个核心一个线程).你能提出一些非常耗费CPU的东西吗?

我必须在ARMv7上为Linux执行此操作,并且语言是C或C++,我发现的其他示例要么是针对Windows,要么是针对C/C++.

我在我的Windows计算机上尝试这样的东西,显然它正在工作,因为它需要12%的总CPU功率(这是每个核心i7四核2线程):

float x = 1.5f;
while (1)
{
    x *= sin(x) / atan(x) * tanh(x) * sqrt(x);
}
Run Code Online (Sandbox Code Playgroud)

我不知道怎么做多线程.

c simulation multithreading cpu-usage

6
推荐指数
1
解决办法
1747
查看次数

穿线很多会导致颠簸吗?

如果每个新线程想要访问内存(在我的情况下特别是相同的数据库)并在其生命周期内执行读/写操作,那么线程是否会导致颠簸?

我认为这是真的.如果我的假设是正确的,那么最大化CPU利用率的最佳方法是什么?我如何确定某些特定数量的线程将提供良好的CPU利用率?

如果我的假设是错误的,请做适当的插图让我清楚地了解情景.

multithreading cpu-usage

6
推荐指数
1
解决办法
1021
查看次数

psutil:测量特定进程的cpu使用情况

我试图测量进程树的CPU使用率.

目前获取进程的cpu_usage(没有子进程)会有,但我得到了奇怪的结果.

import psutil
p = psutil.Process(PID)
p.cpu_percent
Run Code Online (Sandbox Code Playgroud)

让我回来float> 100,这怎么可能?

btw PID是简单的pid

def foo():
    i = 0
    while True:
        i += 1
Run Code Online (Sandbox Code Playgroud)

根据任务管理器的cpu使用情况而定 12%

我想得到一个12.5类似的输出.

python cpu-usage psutil

6
推荐指数
1
解决办法
7247
查看次数

Elixir/Erlang:如何找到高CPU使用率的来源?

我的Elixir应用程序使用了大约50%的CPU,但实际应该只使用<1%.我试图找出导致高CPU使用率的原因,我遇到了一些麻烦.

在远程控制台中,我试过了

  1. 列出所有进程 Process.list
  2. 查看过程信息 Process.info
  3. 通过减少计数对流程进行排序
  4. 按消息队列长度对进程进行排序

消息队列都接近于0,但某些进程的减少计数非常高.具有高减少计数的过程被命名

  1. :file_server_2
  2. ReactPhoenix.ReactIo.Pool
  3. :code_server

(1)和(3)都出现在我的其他应用程序中,所以我觉得它必须是(2).这就是我被困住的地方.我怎样才能进一步弄清楚为什么(2)使用如此多的CPU?

我知道ReactPhoenix使用react-stdio.看看top,react-sdtio不使用任何资源,但光束确实如此.

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        87 53.2  1.2 2822012 99212 ?       Sl   Nov20 580:03 /app/erts-9.1/bin/beam.smp -Bd -- -root /app -progname app/releases/0.0.1/hello.sh -- -home /root -- -noshell -noshell -noinput -boot /app/
root     13873  0.0  0.0   4460   792 ?        Rs   13:54   0:00 /bin/sh -c deps/react_phoenix/node_modules/.bin/react-stdio
Run Code Online (Sandbox Code Playgroud)

我在这个StackOverflow帖子中看到stdin会导致资源问题,但我不确定这是否适用于此.无论如何,任何帮助将不胜感激!

erlang stdio elixir cpu-usage reactjs

6
推荐指数
1
解决办法
1728
查看次数