我有一些代码,我想测量它在自动回归测试中连续运行的速度.这样做的目的是提醒我对代码所做的更改,这些更改会对性能产生负面影响.
在伪代码中,我想要这样的东西:
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上运行,并将自动进行测试,以测试具有各种硬件和服务器的服务器.能力.
这会起作用,还是数字会出错?
该问题应如何解决?有没有更好的办法?是否有这种标准的标准工具?
在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使用率?
在我的linux服务器上,任何java程序(甚至是"Hello world")都使用100%的cpu而且非常慢.Id不依赖于java版本,我尝试过不同版本的openjdk和sun jdk,两者的行为都相同.我怎么能解决这个问题?
我正试图解决一个客观类型的问题,来检查.我实际上不知道正确的答案,也不知道如何得到它,需要你的帮助.谢谢 .
问题: 在某个系统中,主存储器访问时间为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) 默认情况下(go ..)将使用两倍的核心数+ 42个 线程用于线程池.有什么办法可以通过设置环境变量或者sth设置线程数或代码可以使用的CPU数量吗?
在linux机器上,我可以使用taskset设置CPU的数量,例如
taskset -c 0,1 my_Java_or_Clojure_program,虽然taskset似乎对返回的数字没有效果(-> (java.lang.Runtime/getRuntime) .availableProcessors).
我目前正在开发平台并尝试实现时间步长,但对于超过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) 我必须测试嵌入式计算机的最极端条件下产生的热量和电流消耗,为此我想编写一个程序,尽可能多地使用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)
我不知道怎么做多线程.
如果每个新线程想要访问内存(在我的情况下特别是相同的数据库)并在其生命周期内执行读/写操作,那么线程是否会导致颠簸?
我认为这是真的.如果我的假设是正确的,那么最大化CPU利用率的最佳方法是什么?我如何确定某些特定数量的线程将提供良好的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类似的输出.
我的Elixir应用程序使用了大约50%的CPU,但实际应该只使用<1%.我试图找出导致高CPU使用率的原因,我遇到了一些麻烦.
在远程控制台中,我试过了
Process.listProcess.info消息队列都接近于0,但某些进程的减少计数非常高.具有高减少计数的过程被命名
(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会导致资源问题,但我不确定这是否适用于此.无论如何,任何帮助将不胜感激!
cpu-usage ×10
java ×2
c ×1
c++ ×1
clojure ×1
components ×1
core.async ×1
cpu ×1
delphi ×1
delphi-7 ×1
elixir ×1
erlang ×1
frame-rate ×1
linux ×1
memory ×1
performance ×1
psutil ×1
python ×1
reactjs ×1
sfml ×1
simulation ×1
stdio ×1
testing ×1