当前位置: 技术问答>linux和unix
关于tcp server 的几个简单问题
来源: 互联网 发布时间:2015-11-12
本文导语: 关于tcp server 的几个简单问题 现在在做一个IM 服务器练手 有几个问题请教 关于在线用户的问题: 因为上下线都需要检查用户 我目前采用了map做法 通过string 来找user * 然后把消息传给它 。 我感觉问题很大 ...
关于tcp server 的几个简单问题
现在在做一个IM 服务器练手 有几个问题请教
关于在线用户的问题:
因为上下线都需要检查用户 我目前采用了map做法
通过string 来找user *
然后把消息传给它 。 我感觉问题很大 。
首先用户多了,效率太低。而且因为上下线都需要锁定整体。我感觉到了最后这会出现
很多线不停的锁 这个块资源
2 用户上线以后,需要检索用户是否在线。当用户的朋友表很大(我明白了M$ 为什么只准250个朋友了)
那简直就是一种灾难啊。 而且如果用户不断上下线,都需要对他所有的朋友传资料。这是会造成系统”颠簸“吧
应该采用那种数据结构做好呢?
关于线程问题
目前我用了bsd 和 linux 系统 。采用单线程单用户来做的。线程的建立有限制(主要是内存)。到后来就建立不料了。
那么应该改用那种模式比较好呢?
关于内存
bsd linux 系统每个系统有4G 空间。但是你绝对不可能申请到很多的。 我的1G ram suse 9.3 intel 32 大概只有800M
可以申请。再多就失败了。usenet 上老外说 用64位cpu 就没事情了。.... 那么代码上怎么做,可以提高呢?以后换到2G 3G
ram 的服务器以后,可以完全使用服务器的大内存呢? 我知道操作系统只肯给你一点 那么我有2G 3G 了 应该怎么提高?
现在在做一个IM 服务器练手 有几个问题请教
关于在线用户的问题:
因为上下线都需要检查用户 我目前采用了map做法
通过string 来找user *
然后把消息传给它 。 我感觉问题很大 。
首先用户多了,效率太低。而且因为上下线都需要锁定整体。我感觉到了最后这会出现
很多线不停的锁 这个块资源
2 用户上线以后,需要检索用户是否在线。当用户的朋友表很大(我明白了M$ 为什么只准250个朋友了)
那简直就是一种灾难啊。 而且如果用户不断上下线,都需要对他所有的朋友传资料。这是会造成系统”颠簸“吧
应该采用那种数据结构做好呢?
关于线程问题
目前我用了bsd 和 linux 系统 。采用单线程单用户来做的。线程的建立有限制(主要是内存)。到后来就建立不料了。
那么应该改用那种模式比较好呢?
关于内存
bsd linux 系统每个系统有4G 空间。但是你绝对不可能申请到很多的。 我的1G ram suse 9.3 intel 32 大概只有800M
可以申请。再多就失败了。usenet 上老外说 用64位cpu 就没事情了。.... 那么代码上怎么做,可以提高呢?以后换到2G 3G
ram 的服务器以后,可以完全使用服务器的大内存呢? 我知道操作系统只肯给你一点 那么我有2G 3G 了 应该怎么提高?
|
一般的数据库可以支持你这种需求。
用了什么数据库
用了什么数据库