Qt的LocalSocket在Window中是基于Pipe实现的,而Linux中是基于UnixSocket实现的。
按说pipe的性能是不错的,但Qt比较坑,它的内部缓冲区是0,故形成一个阻塞操作,再加上是基于Event事件唤醒,性能整体就比较低下,没有Socket的高。
此事件的使用是与窗口消息共用同一个线程的,为了不影响其它消息的正常处理,它采用WaiForMutipleObject的方法,但等待时间为0,故会出现缓慢。
那Linux呢,是否可以使用呢?也不建议使用,原因是它的缓存只有64K,小数据传送,其效率是比较高的,但大数据传输时,就会出现阻塞的情况,这也影响的整体性能表现。