jzhang 阅读(962) 评论(0)
公司的嵌入式产品采用了Module和Platform分离的设计。Module负责实际的测量,运行固件,Platform则负责展现,比如报表,GUI。
两者之前通过socket通信。前一个产品使用的是simpl,一个开源的通讯库,支持名字查找,对本地和远程访问透明,是相当强大的。从这个产品开始,美国的同事认为simpl效率低,自己实现了基于UDP的组件,据说性能提高了很多。我一直向他要bench mark的结果,未果。

组件投入使用之后,经常发现丢失消息。对于基于它的固件和GUI而言,这是非常痛苦的经历,几乎阻止了他们继续工作。调试的结果包括:
1. 线程不安全。当两个线程同时发起先写后读的操作后,会出现一个线程读走本来属于另一个线程的数据情况。
2. 发送端发送速率超过接收端接收速率,导致UDP包丢失的问题


Moogse. 这是一个开源的web server,以前没听说过,也是美国同事引入的。发现当浏览器运行的设备上而非pc的时候,偶尔会出现发送到服务器的post data为空的情况。而通过抓包确认,数据是确实发送了的。

发表评论
切换编辑模式