QT官方一直宣称QT5的SceneGraph绘制效率比普通绘制效率高很多,但并没有具体的实例证实,写了两个测试程序,用例一基于SceneGraph QML绘制,用例二基于QGLWidget上的QPainter绘制,测试环境为redhat 6 x86_64,ati radeon hd 5450,安装商业显卡驱动。
测试程序基本功能如下:从半径为0开始,0.1个像素递增半径画同心圆,一直画到100,重复这一过程。
测试代码链接:http://download.csdn.net/detail/lizhenneng/7968219
通过测试,发现使用两种技术绘制效率几乎一样,绘制效果也几乎差不多。
卸载了商业显卡驱动后,绘制消耗时间也没有什么变化,怀疑opengl绘制是否发挥了效果,难道opengl的2d绘制无法发挥其性能,主要体现在3D上吗?
不过从编程方式来看,qml对用户响应更加及时,通过牺牲绘制效果来获取更加快速及时的响应用户请求,而QPainter绘制则更加灵活,绘制效果也更好。