下面是vncserver的打印信息,通过打印信息我们了解整个数据处理的过程:
vncDesktopThread---run_undetached:34---7---671start while //轮询本次处理
vncDesktopThread---run_undetached:34---7---686looping //等待上一次发送完成,耗时15ms
vncDesktopThread---handle_driver_changes:34---7---686start //开始检查video是否有改变
vncDesktop-----CalcCopyRects:34---7---686 //捕获拷贝矩形
vncDesktopThread---handle_display_change:34---7---686 //检查屏幕是否有改变
vncDesktopThread---handle_display_change:34---7---686 over //结束检查
vncDesktopThread---undetached:34---7---686 sigle window over //给窗口发送信号
vncDesktopThread---undetached:34---7---686 beep over //结束响铃
vncDesktopThread---undetached:34---7---686 mutex lock over //用互斥锁锁住本次处理流程
vnserver---UpdateWanted:34---7---686start //判断是否有更新请求,此处有更新请求,我们从这里计为一帧的开始
这是第285帧
vncDesktopThread---undetached:34---7---686 CALCULATE CHANGES over //计算有改变的区域
vncDesktopThread---undetached:34---7---686 Polling over //轮询模式结束
vncDesktopThread---undetached:34---7---686 mouse pointer over //捕捉鼠标结束
vncbuffer---grabregion:34---7---686 //捕捉矩形
vncbuffer---grabregion:34---7---686 Grab the rectangles over
vncbuffer---grabregion:34---7---686 for over
vncbuffer---GrabRect:34---7---686 start
vncbuffer---GrabRect:34---7---686 else
vncbuffer---ScaleRect:34---7---686 start //捕捉矩形数据,耗费时间16ms
vncbuffer---ScaleRect:34---7---702 over
vncbuffer---GrabRect:34---7---702 over
vncbuffer---grabregion:34---7---702 over
vncDesktopThread---undetached:34---7---702 grab display over //捕捉屏幕完成
vncDesktopThread---undetached:34---7---702 mouse handling over //处理鼠标完成
vncDesktopThread---undetached:34---7---717 get update over //触发发送更新完成,耗时15ms
vncClientUpdateThread----run_undetached:34---7---717block a long time over //发送更新线程已经被创建,并且等待上一次的完成
rfb---SimpleUpdateTracker----flush_update:34---7---717start //更新触发器已经被触发
vncClientUpdateThread----run_undetached:34---7---717SEND THE CLIPBOARD over //发送剪贴板完成
vncClientUpdateThread----run_undetached:34---7---717send //客户端更新线程开始发送更新数据
vncClient---SendUpdate:34---7---717 start //客户端线程启动发送更新
vncClient---SendUpdate:34---7---717 old update over //等待上一次更新退出
vncClient---SendUpdate:34---7---717 send timer start //发送定时器、节拍
VSocket---Send:34---7---717start //发送
VSocket---Send:34---7---717over //结束
vncClient---SendUpdate:34---7---717 send rfbmsg over //发送rfb消息结束
vncClient---SendUpdate:34---7---717 send copy rect over //发送拷贝矩形消息结束
vncClient----SendRectangles:34---7---717start //开始发送多个矩形
vncClient----SendRectangles:34---7---717j == 0
vncClient----SendRectangles:34---7---717over
vncClient---SendUpdate:34---7---717 send rect angles over
vncClient----SendRectangles:34---7---717start //开始发送多个矩形
vncDesktopThread---undetached:34---7---717 scan screen over //扫描屏幕完成
vncDesktopThread---undetached:34---7---717 clear update tracker over //触发触发器完成
vncDesktopThread---undetached:34---7---717 over case
vncDesktopThread---undetached:34---7---717 over while
vncDesktopThread---run_undetached:34---7---717start while //又一次开始循环处理
vncDesktopThread---run_undetached:34---7---717looping //开始轮询
vncDesktopThread---handle_driver_changes:34---7---717start //开始检查video是否有更新
vncDesktop-----CalcCopyRects:34---7---717
vncDesktopThread---handle_display_change:34---7---717
vncDesktopThread---handle_display_change:34---7---717 over //检查屏幕是否有更新完成
vncDesktopThread---undetached:34---7---717 sigle window over
vncDesktopThread---undetached:34---7---717 beep over
vncDesktopThread---undetached:34---7---717 mutex lock over
vnserver---UpdateWanted:34---7---717start //判断是否有更新请求
vncserver---UpdateWanted: j == 1
vncserver---UpdateWanted:34---7---717over
vncDesktopThread---undetached:34---7---717 over case
vncDesktopThread---undetached:34---7---717 over while
vncDesktopThread---run_undetached:34---7---717start while //又一次轮询处理
vncDesktopThread---run_undetached:34---7---717looping //等待上一次发送退出
vncDesktopThread---handle_driver_changes:34---7---717start
vncDesktop-----CalcCopyRects:34---7---717
vncDesktopThread---handle_display_change:34---7---733
vncDesktopThread---handle_display_change:34---7---733 over //检查屏幕更新完成,耗时16ms
vncDesktopThread---undetached:34---7---733 sigle window over
vncDesktopThread---undetached:34---7---733 beep over
vncDesktopThread---undetached:34---7---733 mutex lock over
vnserver---UpdateWanted:34---7---733start
vncserver---UpdateWanted: j == 1
vncserver---UpdateWanted:34---7---733over
vncDesktopThread---undetached:34---7---733 over case
vncDesktopThread---undetached:34---7---733 over while
vncDesktopThread---run_undetached:34---7---733start while
vncClient----SendRectangle:34---7---749start //迭代器,将矩形区域划分成一组小队列发送,此处花费时间32ms
VSocket----SendExactQueue:34---7---749start
VSocket------SendQueued:34---7---749 start //开始发送队列
VSocket------SendQueued:34---7---749 over if
VSocket------SendQueued:34---7---749 over
VSocket----SendExactQueue:34---7---749start
vncClient----SendRectangle:34---7---749start
VSocket----SendExactQueue:34---7---749start
VSocket------SendQueued:34---7---749 start
VSocket------SendQueued:34---7---749 over memcpy
VSocket------SendQueued:34---7---749 over send
VSocket------SendQueued:34---7---749 in if
VSocket------SendQueued:34---7---749 over if
VSocket------SendQueued:34---7---749 over
VSocket----SendExactQueue:34---7---749start
vncClient----SendRectangle:34---7---749start
VSocket----SendExactQueue:34---7---764start //解码数据单元,此处花费15ms
VSocket------SendQueued:34---7---764 start
VSocket------SendQueued:34---7---764 over memcpy
VSocket------SendQueued:34---7---764 over send
VSocket------SendQueued:34---7---780 in while //开始发送真实数据
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---780 in while
VSocket------SendQueued:34---7---796 in while //应该是发送缓冲区小了点
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
vncDesktopThread---run_undetached:34---7---796looping
VSocket------SendQueued:34---7---796 in while
vncDesktopThread---handle_driver_changes:34---7---796start
vncDesktop-----CalcCopyRects:34---7---796
vncDesktopThread---handle_display_change:34---7---796
vncDesktopThread---handle_display_change:34---7---796 over
vncDesktopThread---undetached:34---7---796 sigle window over
vncDesktopThread---undetached:34---7---796 beep over
vncDesktopThread---undetached:34---7---796 mutex lock over
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in while
VSocket------SendQueued:34---7---796 in if
VSocket------SendQueued:34---7---796 over if
VSocket------SendQueued:34---7---796 over
VSocket----SendExactQueue:34---7---796start
vncClient----SendRectangle:34---7---796start
VSocket----SendExactQueue:34---7---796start
VSocket------SendQueued:34---7---796 start
VSocket------SendQueued:34---7---796 over if
VSocket------SendQueued:34---7---796 over
VSocket----SendExactQueue:34---7---796start
vncClient----SendRectangle:34---7---796start
VSocket----SendExactQueue:34---7---796start
VSocket------SendQueued:34---7---796 start
VSocket------SendQueued:34---7---796 over memcpy
VSocket------SendQueued:34---7---796 over send
VSocket------SendQueued:34---7---796 in if
VSocket------SendQueued:34---7---796 over if
VSocket------SendQueued:34---7---796 over
VSocket----SendExactQueue:34---7---796start
vncClient----SendRectangle:34---7---796start
VSocket----SendExactQueue:34---7---796start
VSocket------SendQueued:34---7---796 start
VSocket------SendQueued:34---7---796 over if
VSocket------SendQueued:34---7---796 over
VSocket----SendExactQueue:34---7---796start
vncClient----SendRectangle:34---7---796start
VSocket----SendExactQueue:34---7---796start
VSocket------SendQueued:34---7---796 start
VSocket------SendQueued:34---7---796 over if
VSocket------SendQueued:34---7---796 over
VSocket----SendExactQueue:34---7---796start
vncClient----SendRectangles:34---7---796j == 7
vncClient----SendRectangles:34---7---796over
vncClient---SendUpdate:34---7---796 again send rect angles over
vncClient---SendUpdate:34---7---796 send last rect over
vncClient---SendUpdate:34---7---796 over //一次更新数据完成
vncClientUpdateThread----run_undetached:34---7---796send update over //一次更新数据完成,历时110ms
阅读(1476) | 评论(0) | 转发(0) |