Qt发射需要30ms,这可能吗?

Meg*_*300 3 c++ performance qt

我正在努力提高项目的性能,所以我想弄清楚哪个操作需要时间.

我注意到我的emit功能需要30ms,是否可以发送数据?

这是代码:

void MainWindow::play(){

unsigned char* img;     //Size is 1280*720*2

img = camera1->captureLastFrame();

timer.start(); 

emit video(img); 

qDebug()<<QString::number(timer.nsecsElapsed()/1000000) + " ms";

}
Run Code Online (Sandbox Code Playgroud)

qDebug显示器30毫秒.我做错了什么,或者这个操作真的需要时间吗?

编辑:

信号和插槽声明/连接.

signals: 

     void video(unsigned char* copy);

private slots: 

     void play();

connect(this, SIGNAL(video(unsigned char*)), ui->widget, SLOT(videodisplay(unsigned char*)));
Run Code Online (Sandbox Code Playgroud)

Jep*_*sen 5

如果连接在单个线程中,则执行emit命令以及插槽,然后程序继续执行下一行qDebug.所以可能不是信号慢,而是连接到它的插槽.

尝试使用该信号删除所有连接,并一次添加一个以检查慢速.或者,更好的是,尝试使用分析器来检查此操作中的瓶颈(Linux上的valgrind,窗口中的glowcode或类似内容).