Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1135915
  • 博文数量: 222
  • 博客积分: 5262
  • 博客等级: 大校
  • 技术积分: 3028
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-22 19:10
文章分类

全部博文(222)

文章存档

2012年(2)

2011年(192)

2010年(28)

分类: C/C++

2011-03-04 16:51:57

    下面是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
阅读(1423) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~