2 gaotihong gaotihong 于 2015.07.28 11:40 提问

VS编写的GMM函数,效率问题 5C

问一下,大家运行OPENcv时, 效率怎么样?主要是CPU和内存的占有量。
我近期在window平台上,运行一个GMM程序,(是公司提供的库函数,我只是进行简单的调用),CPU占用25%,内存占用11.136K。
请问一下:
1.通常怎么优化代码么,可以从哪些角度入手?
2.怎么评估代码的好坏?
我的机器:处理器:Intel(R) Core(TM) i3-4160 CPU@3.6GHZ,
内存:4.00GB(3.87GB可用)
系统:64位操作系统(window7)

2个回答

devmiao
devmiao   Ds   Rxr 2015.07.28 11:43

cpu占25说明程序没有充分利用多核并行计算

devmiao
devmiao 回复gaotihong: 是的,你用了25%,而你的计算机有4个逻辑处理器(双核),大约只发挥了40%的性能。
接近 3 年之前 回复
gaotihong
gaotihong 问一下:1.多核意思是多线程编程?2.当多线程编程后,CPU的占用量不是应该增加么?3.在程序执行时,是CPU占有量越大越好么,程序不会卡么?
接近 3 年之前 回复
gaotihong
gaotihong 问一下:
接近 3 年之前 回复
oyljerry
oyljerry   Ds   Rxr 2015.07.28 12:29

如果想充分利用多核CPU,你可以开多线程,或者多进程来跑你的程序,比如运行你的程序实例4-8个,这样来充分挖掘CPU的性能。

gaotihong
gaotihong 回复oyljerry: 哦,暂时明白了!谢谢
接近 3 年之前 回复
oyljerry
oyljerry 回复gaotihong: 多核就是说充分来发挥CPU的能力,CPU高,说明使用率高。当然还要看你的代码是否有bug,有死循环等。CPU也不能无限制高,太高了,其他程序就得不到处理。
接近 3 年之前 回复
gaotihong
gaotihong 问一下:1.多核意思是多线程编程?2.当多线程编程后,CPU的占用量不是应该增加么?3.在程序执行时,是CPU占有量越大越好么,程序不会卡么?
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
vs2008查看函数运行时间的方法。
首先,需要添加头文件  time.h 里面定义了 time_t 类型的变量。实际上是整形的数据。 先定义几个变量: time_t  begin,stop,during; 在函数开始和结尾处分别加上这两句: begin = clock(); stop  = clock(); 然后 during = double(end-begin)/CLOCKS_PER_SEC;
GMM算法和Python简单实现
GMM算法原理和Python实现
GMM模型,用MATlab编写的。可以用来训练
混合高斯模型,用在模式识别上面的混合高斯模型,用在模式识别上面的混合高斯模型,用在模式识别上面的混合高斯模型,用在模式识别上面的混合高斯模型,用在模式识别上面的混合高斯模型,用在模式识别上面的混合高斯模型,用在模式识别上面的混合高斯模型,用在模式识别上面的混合高斯模型,用在模式识别上面的
GMM与K-means的那些事
GMM算法GMM 与 K-meansGMM 模型GMM 聚类参数与似然函数算法流程Matlab 实现Python版本代码GMM与K-means对比关于GMM算法中奇异矩阵的问题 【原创】Liu_LongPo  转载请注明出处【CSDN】http://blog.csdn.net/llp1992 GMM算法 GMM ,Gaussian Mixtu
利用opencv封装的2种GMM函数实现的前景目标提取,同时带blob连通域标记。
利用opencv封装的2种GMM函数实现的前景目标提取,同时带blob连通域标记。
性能特性测试系列2——c++11 std::function和正常调用函数效率比较
序 测试结果 测试数据解释 测试结果总结 总结与分析 原本是没打算写一个系列的,结果到了第二篇才开始写一个前言,本来不确定自己会测试哪些东西,哪些内容,以及有没有时间持续写这些比较偏的内容,但既然有打算写第二篇了,那么就写一个系列吧。本系列主要是QT和c++一些对比,当然也可能会有本篇这种纯c++的测试,看情况吧只能说。测到哪里写到哪里,时间就不太好说了= =。序 对于std::function和s
EM算法解决GMM问题
高斯混合模型高斯混合模型是几个高斯成分的简单线性叠加,可以提供比单高斯更加丰富的密度模型。 高斯模型的形式: 这就表示此模型是由K个高斯分布线性叠加而成。高斯混合模型公式的推导引入一个K维的二进制随机变量z,其中只有一个元素zkz_k为1,其他元素都为0。因此zkz_k的值满足zk∈0,1z_k\in{0,1}并且∑kzk=1\sum_k z_k=1。通过哪个元素不为0,可以看出向量z有K种
EM算法与GMM的训练应用
注:本文主要参考Andrew Ng的Lecture notes 8,并结合自己的理解和扩展完成。本文有的数学推导过程并不是那么的严密,主要原因是本文的目的在于理解原理,若数学推导过于严密则文章会过于冗长。GMM简介GMM(Gaussian mixture model) 混合高斯模型在机器学习、计算机视觉等领域有着广泛的应用。其典型的应用有概率密度估计、背景建模、聚类等。图1 GMM用于聚类图2 GM
EM算法训练GMM的聚类函数vq_flat
EM算法训练GMM的Matlab实现过程(总结) 中 的vq_flat代码
通过VS2010性能分析来查找代码中那些地方最损耗资源
smark https://github.com/IKende/ 通过VS2010性能分析来查找代码中那些地方最损耗资源   在编写完成一个程序后,大家都比较关心程序的性能如何,想把程序优化得更好。很多时候凭个人直觉来优化程序是件非常不靠普的事情,即使你是一个优秀的开人员也很难准确地判断程序中那些出现问题。VS2010提供了性能分析工具就能轻松地帮我们解决这一事情。