第一次来论坛发帖,想问问各位有过使用protobuf经验的大大给点意见,不甚感激! 我的做法是这样的,.proto文件中定义消息类型,我的测试消息是三个string,一个int,一个float,总共5个字段的message。然后用protoc生成代码,然后用precompile进行预编译(这里说一句,如果不预编译,直接放到项目中,第一次序列化时间更长!),最后得到的dll和protobuf-net一起放到项目中。 调用的时候也是网上能搜到的方式 如上,profile分析器中看到的性能显示每次开销都会在protobuf里面的一个叫做SerializeCore的函数上,基本上时间都花在这上面了。头疼着,找了很多资料,希望各位大侠给点方向。 |
|
#1 |
|
#2 |
回复1楼: 感谢,终于有人来啦! |
#3 |
你应该先学习一下线程的概念,通信有关的代码,都放到线程里去
还有,能不能用一点专业术语,不要随便用协同什么的 数组只是保存变量用的,什么叫数组的方式创建啊 |
10分
#4 |
其实你是在一个线程里创建了10个连接,然后把连接对象放到了数组中而已
既然都是在同一个线程里(而且很有可能你是直接在主线程中创建的) 那么每个连接的通信等待过程,都会阻塞其他连接的正常执行 |
#5 |
回复4楼: 抱歉哈,新手描述难免不准确。 |
15分
#6 |
试试fastCSharp的代码生成方式,不过没有在mono/unity的真实环境下测试过。
|
15分
#7 |
另外客户端确实不需要太多连接,一个足矣,而且效率最好。
|
#8 |
回复7楼: 非常感谢!但是目前测试进入尾声,只剩一个性能指标了,不好随便更换,希望再等其他人给点意见啥的~ |
#10 |
楼主你的问题解决了吗、同样碰到你说的问题
|