做了9年php,到了新公司,又开始做webgame了,以前公司的同时也在这里,他是做java的,他今天给我鼓吹了下java,让我想起了php对于做webgame这种东西感到力不从心的地方:
1 socket,虽然有人开发出了libevent,可他仍然是单线程的,处理个聊天应该能行,但是要做游戏服务,不行!
2 thread,没有线程函数,只有进程,也使得php没办法做游戏服务
3 object cache,如果前两项可以忽略的话,这项如果有,也将很鼓舞人心!现有的缓存我知道的分两种apc,eaccelerator,xcache这种缓存opcode(也可以缓存数据,不是很适合);二是memcache、redis。他们都只能缓存“字符串”(memcache缓存对象,也是自动反序列化了而已)!对于回放制的来说,可以没有“对象缓存”,因为建立一次对象可以使用到一个“终止”期,但是对于回合制,每次请求都需要读上一次的状态,这就很伤神了,所以,我不知道有没有这种东西,搜索了,出来的都是memcache,静态化,反向代理之类的。有没类似的东西,或者好的解决方案!
以上三个硬伤,有没有好的方案?
1 socket,虽然有人开发出了libevent,可他仍然是单线程的,处理个聊天应该能行,但是要做游戏服务,不行!
2 thread,没有线程函数,只有进程,也使得php没办法做游戏服务
3 object cache,如果前两项可以忽略的话,这项如果有,也将很鼓舞人心!现有的缓存我知道的分两种apc,eaccelerator,xcache这种缓存opcode(也可以缓存数据,不是很适合);二是memcache、redis。他们都只能缓存“字符串”(memcache缓存对象,也是自动反序列化了而已)!对于回放制的来说,可以没有“对象缓存”,因为建立一次对象可以使用到一个“终止”期,但是对于回合制,每次请求都需要读上一次的状态,这就很伤神了,所以,我不知道有没有这种东西,搜索了,出来的都是memcache,静态化,反向代理之类的。有没类似的东西,或者好的解决方案!
以上三个硬伤,有没有好的方案?
不过话说回来,我也从未实际做过什么贡献,又有什么资格指责别人。
我以前用php開發過一個多人同時在線的考試系統,因為客戶的特殊要求,所以導致效率很差,如果能夠有好的緩存機制就好了.
期待中...
.net 依托 .net framework
jsp 依托 tomcat
所以或多或少都提供了持续的对象而 php 没有专属的宿主,因此高效的持续对象只能是水中月了