如何知道x264是否使用Windows多处理器

时间:2013-12-03 19:20:59

标签: c windows cpu x264

我有使用x264编码器的Linphone开源应用程序。默认情况下,它在一个线程上运行:

x264_param_t *params= ..... 
params->i_threads=1;

我添加了使用所有处理器的能力:

long num_cpu=1;
SYSTEM_INFO sysinfo;
GetSystemInfo( &sysinfo );
num_cpu = sysinfo.dwNumberOfProcessors;
params->i_threads=num_cpu;  

问题是如何知道在视频流中x264运行(在我的情况下)4个处理器?

因为Task Manager -> Performance -> CPU usage history并未明确。

我使用的是Windows 7

谢谢,

2 个答案:

答案 0 :(得分:1)

在Windows任务管理器中,请务必选择View -> CPU History -> One Graph Per CPU。如果它看起来仍然不像所有处理器内核都以全速运行,那么可能某些资源正在使编码线程匮乏,并且存在将数据输入编码器的瓶颈。

答案 1 :(得分:1)

有三个容易看到的迹象表明编码可以利用多个核心:

  1. 编码运行得更快
  2. 每个核心CPU负载表示多个核心/处理器上的同时负载
  3. 每个线程应用程序的CPU负载显示多个线程上的相关负载
  4. 此外,您可以使用处理器关联掩码(以编程方式,并通过任务管理器)将应用程序限制为单CPU。如果x264使用多个处理器,则设置掩码将严重影响应用程序性能。