标签: cpu-usage

便携式系统/过程信息库

我需要在C/C++程序中检索进程信息.我至少需要基本的东西,如CPU%和内存使用,但其他细节也很有用.

问题是我需要在便携式程序中使用这些信息,该程序将在多个平台上运行:windows,linux,MAC和Solaris.

是否有可以使用的库或者我需要为不同的平台编写自己的HAL?我试着看谷歌,但我看不出任何明显的东西.

c++ operating-system memory-management system cpu-usage

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

如何计算一段.NET代码的CPU使用率?

我们的工具在诊断模式下生成性能日志,但是我们跟踪代码执行时间(秒表+毫秒)的性能.

显然它根本不可靠,测试系统的CPU可以被一些随机过程使用,如果你的工具配置为运行10个线程而不是2个,结果将完全不同,等等.

我的问题是:

找出一段代码(而不是整个过程)的正确CPU时间的正确方法是什么?

我的意思是CPU时间:

基本上CPU花了多少周期.我假设对于同一台计算机中的同一段代码,它将始终相同,并且不受其他进程的影响.我可能会在这里遗漏一些基本的东西,如果是这样,请在评论或答案中启发我.

PS在我们的设置中无法使用分析器

另一个更新,

为什么我不打算使用分析器

因为我们需要在具有不同数据的不同环境中测试代码,而我们没有分析器或IDE或类似的东西.因此代码本身应该处理它.一个极端的选择可能是使用分析器的DLL,但我不认为这个任务需要这么复杂的解决方案(假设没有免费且易于实现的分析库).

.net optimization performance cpu-usage

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

Android传感器CPU使用情况

我试图从三星Galaxy Tab GT-P1000读取多个传感器,相对于我使用的应用程序,它们似乎相当糟糕地占用了CPU.

作为测试,我创建了一个简短的程序,它实现了Accelerometer传感器的SensorEventListener,但对传感器读数没有任何作用:

public class SensorTestActivity extends Activity implements SensorEventListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        SensorManager oSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
        oSensorManager.registerListener(this, oSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        // TODO Auto-generated method stub

    }
}
Run Code Online (Sandbox Code Playgroud)

这导致我在调试时(即我的设备已插入我的PC)10%的CPU使用率和5%的使用率而我不是.如果我使用SENSOR_DELAY_FASTEST,那么在我调试时,使用率会持续增长30%,而在我调试时则增长20%.

当我想使用多个传感器时,这会产生一个大问题,因为它们都具有高CPU使用率且没有任何数据处理.我已经使用了Android Market的Compass应用程序,并且他们在给定时间都没有使用超过5%的CPU,所以我觉得我错过了一些明显的东西,但找不到其他人有同样的问题.

我没有为这个应用程序编辑清单文件或布局 - 它是Eclipse制作的默认模板,我添加了传感器.

更新:我读取CPU使用率的方法存在缺陷,因为我正在使用任务管理器来测量它.我的应用程序不是在任务管理器打开时使用onPause停止传感器,而大多数其他应用程序会这样做.

android accelerometer cpu-usage android-sensors

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

如何识别某个HTTPD进程正在处理哪个URL?

我的Web服务器偶尔会遇到HTTPD请求,这会导致CPU使用率上升.我在Top看这个.每次请求时都会动态生成每个URL.该框架是Codeigniter.我在Linux CentOS上使用prefork Apache作为我的Web服务器.

如何在CPU使用率达到峰值时找出正在处理的URL?我可以以某种方式将进程ID与Apache日志中的HTTP请求相关联吗?网站上有数百万个页面,因此查看Codeignitor的分析器并没有帮助.

apache cpu-usage

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

有什么方法可以减少htmlspecialchars()的CPU使用率?

我有一个php 5.4/ mysql每天5万次点击的网站,有一个Linux服务器上运行nginxphp-fpm.数据库位于单独的服务器上.

我注意到,在高峰时段,我的网络服务器负载最多为15,而四核处理器则为4.我用php xdebugxhprof描述了我的php应用程序,并看到,90%的CPU工作是由htmlspecialchars()Twig我用来显示数据的模板中函数完成的.htmlspecialchars()每页有时会有100到1000个电话.我试图减少无法逃避,但仍然无法避免.

有什么方法可以减少htmlspecialchars()功能的CPU使用率吗?也许在PHP中存在某种缓存?还是有另一种方式?

php performance cpu-usage htmlspecialchars twig

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

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

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

问题: 在某个系统中,主存储器访问时间为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万
查看次数

简单的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
查看次数

为什么我的Android应用程序在后台使用CPU?

我已经写了几个月的Android应用了.它尚未发布,但已安装在我的设备中.

今天我从Battery Doctor应用程序收到一条关于我的应用消耗了大量CPU的通知,即使我从昨天起就没用过它.

所以基本上我的应用程序在后台运行,它不应该做任何事情,但它正在使用CPU.

所以我打开了TraceView并在我的应用程序中进行了一些分析(在此分析时间内我根本没有与我的应用程序进行交互)这就是我得到的:http://i.imgur.com/ PYg6twX.png

我在这里很无能为力.我从实际代码中看不到任何功能,所以我甚至不知道从哪里开始查找.我真的不明白屏幕截图中的功能是什么,或者为什么它们会出现在那里.

所以我有几个问题,我真的很感激一些帮助:

  • 我的分析结果是否可以预期?或者,如果我没有与我的应用程序进行交互,那些功能是不应该出现的?
  • 如果这些功能不应该出现,谁能猜到我的应用程序中可能出现的问题?难道撒谎是原因吗?

非常感谢!

android cpu-usage android-traceview

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

穿线很多会导致颠簸吗?

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

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

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

multithreading cpu-usage

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

多个Postgres SELECT进程(django GET请求)卡住,导致100%的CPU使用率

我会尽力提供尽可能多的信息.虽然解决方案很棒,但我只想获得如何解决问题的指导.如何查看更多有用的日志文件等.因为我是服务器维护的新手.欢迎任何建议.

这是按时间顺序发生的事情:

  • 我正在运行2个数字海洋飞沫(Ubuntu 14.04 VPS)
  • Droplet#1正在运行django,nginx,gunicorn
  • Droplet#2运行postgres
  • 一切都运行良好一个月,突然postgres droplet CPU使用率飙升至100%
  • 发生这种情况时,您可以看到htop日志.我附上了截图
  • 另一个截图是nginx error.log,你可以看到问题是在15:56:14开始的,我用红框突出显示
  • sudo poweroff Postgres Droplet并重启它并不能解决问题
  • 将postgres droplet恢复到我上次的备份(20小时前)可以解决问题,但它会再次发生.这是2天内的第7次

我会继续做研究并提供更多信息.同时欢迎任何意见.

谢谢.

发生问题时,Postgres服务器htop日志 发生问题时的nginx error.log

2016年5月20日更新

  • 根据e4c5的建议,在Postgres服务器上启用慢速查询日志记录
  • 6小时后,服务器在上午8:07再次冻结(100%CPU使用率).我附上了所有相关的截图
  • 如果在冻结期间尝试访问站点,则浏览器显示502错误
  • sudo service restart postgresql(和gunicorn,Django的服务器上nginx的)不解决冻结(我认为这是一个非常有趣的观点)
  • 但是,将Postgres服务器恢复到我之前的备份(现在为2天)确实可以修复冻结
  • 罪魁祸首Postgres日志消息无法向客户端发送数据:Broken Pipe
  • 罪魁祸首Nginx日志消息是一个简单的django-rest-framework
    api调用,它只返回20个项目(每个项目都有一些外键数据查询)

更新#2 2016年5月20日 当冻结发生时,我尝试按时间顺序执行以下操作(关闭所有内容并逐个转回)

  • sudo service stop postgresql - > cpu使用率降至0-10%
  • sudo service stop gunicorn - > cpu使用率保持在0-10%
  • sudo service stop nginx- > cpu使用率保持在0-10%
  • sudo service restart postgresql - > cpu使用率保持在0-10%
  • sudo …

django postgresql nginx cpu-usage ubuntu-14.04

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