nuc972平台qt+dfb+2d简单性能对比测试
2017-05-25 23:45
567 查看
经过一段时间的DirectFB学习之后,终于在nuc972平台上将qt+dfb+2d硬件加速跑通了,这边先做了一个简单的性能对比测试,测试单纯跑qt和跑qt+dfb+2d的效果对比试验。
测试内容为让一个窗口绕着屏幕跑圈圈,qt代码如下:
我们先来看单独跑qt的效果,如下视频:
(尝试在这里添加视频,但是未成功,请移步优酷观看)
nuc972平台qt测试之窗口移动实验
看完单独跑qt的效果我们再来看下跑qt+dfb+2d的测试效果,如下:
(尝试在这里添加视频,但是未成功,请移步优酷观看)
nuc972平台qt+dfb+2d测试之窗口移动实验
可以看出首先视觉上启用了2D硬件加速后窗口跑的更快了,然后在从CPU的使用情况来看,跑qt+dfb+2d时CPU使用率在60%左右,而单独跑qt的CPU使用率已接近100%,可以看出使用了2D硬件加速后性能提升明显。本次测试主要影响性能的就是矩形填充和块传输了,在没有硬件支持的情况下CPU需要通过memset和memcpy函数来实现这两点所以是非常影响性能的,特别是memcpy函数。
我这边适配的dfb硬件加速驱动也只适配了画线、矩形填充,Bitblt块传输,还有alpha混合等更强大的功能暂未做适配,后续将把它更完善后整理出来分享给大家使用。
nuc972开发板购买地址
测试内容为让一个窗口绕着屏幕跑圈圈,qt代码如下:
/* tdialog.h */ #ifndef TDIALOG_H_ #define TDIALOG_H_ #include <QtGui> #include <QDialog> static QDialog* m_Dialog; class TDialog : public QDialog { Q_OBJECT public: TDialog(); virtual ~TDialog(); protected: void timerEvent(QTimerEvent *event); private: int m_nTimerId; }; #endif
/* main.cpp */ #include <QtGui> #include <QDialog> #include "tdialog.h" static TDialog* m_TDialog; TDialog::TDialog() { m_nTimerId = startTimer(0); } TDialog::~TDialog() { if(0 != m_nTimerId) { killTimer(m_nTimerId); } } void TDialog::timerEvent(QTimerEvent *event) { static int x = 0, y = 0; if(x < 600 && y == 0) { x += 10; } else if(x == 600 && y < 300) { y += 10; } else if(x > 0 && y == 300) { x -= 10; } else if(x == 0 && y > 0) { y -= 10; } this->move(x, y); } int main(int argc, char *argv[]) { QApplication app(argc, argv); m_TDialog = new TDialog(); m_TDialog->resize(200, 120); m_TDialog->move(0, 0); m_TDialog->show(); return app.exec(); }
我们先来看单独跑qt的效果,如下视频:
(尝试在这里添加视频,但是未成功,请移步优酷观看)
nuc972平台qt测试之窗口移动实验
看完单独跑qt的效果我们再来看下跑qt+dfb+2d的测试效果,如下:
(尝试在这里添加视频,但是未成功,请移步优酷观看)
nuc972平台qt+dfb+2d测试之窗口移动实验
可以看出首先视觉上启用了2D硬件加速后窗口跑的更快了,然后在从CPU的使用情况来看,跑qt+dfb+2d时CPU使用率在60%左右,而单独跑qt的CPU使用率已接近100%,可以看出使用了2D硬件加速后性能提升明显。本次测试主要影响性能的就是矩形填充和块传输了,在没有硬件支持的情况下CPU需要通过memset和memcpy函数来实现这两点所以是非常影响性能的,特别是memcpy函数。
我这边适配的dfb硬件加速驱动也只适配了画线、矩形填充,Bitblt块传输,还有alpha混合等更强大的功能暂未做适配,后续将把它更完善后整理出来分享给大家使用。
nuc972开发板购买地址
相关文章推荐
- Java 7新特性及简单性能对比测试
- splFixedArray和PHP array的简单性能测试对比
- Java 7新特性及简单性能对比测试
- myconnpy, myconnpy + psyco与MySQLdb简单性能测试对比
- apache nginx 性能简单对比测试
- Impala、Hive性能简单对比测试
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试
- PHP4和PHP5性能测试和对比 测试代码与环境
- 几个库DGL、STL(vc6)、STL(SGI)、DCL 、DeCal 、EZDSL的容器性能对比测试
- 原生代码与托管代码的一个简单性能对比
- 差距几何 Vista与XP系统性能对比测试(下)
- PHP4和PHP5性能测试和对比 测试代码与环境
- PHP4和PHP5性能测试和对比
- Hibernate的简单Read性能测试
- mysql的一个简单的性能测试
- 几种字符串匹配算法性能简单实验对比
- jboss tomcat weblogic websphere 性能对比测试 (1)
- JMeter小实验——JSP性能简单测试
- [网络基础]高效实用:用简单命令测试网络性能
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试