日期:2014-05-17  浏览次数:20626 次

php 有对象、类缓存吗?(对php有期待的进来)
做了9年php,到了新公司,又开始做webgame了,以前公司的同时也在这里,他是做java的,他今天给我鼓吹了下java,让我想起了php对于做webgame这种东西感到力不从心的地方:
1 socket,虽然有人开发出了libevent,可他仍然是单线程的,处理个聊天应该能行,但是要做游戏服务,不行!
2 thread,没有线程函数,只有进程,也使得php没办法做游戏服务
3 object cache,如果前两项可以忽略的话,这项如果有,也将很鼓舞人心!现有的缓存我知道的分两种apc,eaccelerator,xcache这种缓存opcode(也可以缓存数据,不是很适合);二是memcache、redis。他们都只能缓存“字符串”(memcache缓存对象,也是自动反序列化了而已)!

对于回放制的来说,可以没有“对象缓存”,因为建立一次对象可以使用到一个“终止”期,但是对于回合制,每次请求都需要读上一次的状态,这就很伤神了,所以,我不知道有没有这种东西,搜索了,出来的都是memcache,静态化,反向代理之类的。

有没类似的东西,或者好的解决方案!
以上三个硬伤,有没有好的方案?




------解决方案--------------------
我也希望能有一个可以缓存类和函数的定义的模块,可惜没有。而且未来也不见得有,APC到现在都还没有被加入核心。即便是有APC,仍然还要每次载入和销毁类的定义,大量的资源都被这样重复的工作浪费了。
不过话说回来,我也从未实际做过什么贡献,又有什么资格指责别人。
------解决方案--------------------
只能寄希望于PHP的未來了.
我以前用php開發過一個多人同時在線的考試系統,因為客戶的特殊要求,所以導致效率很差,如果能夠有好的緩存機制就好了.
期待中...
------解决方案--------------------
APC 现在好像是由 Laruence 在维护?或许可以将一些意见反馈给他。

探讨

我也希望能有一个可以缓存类和函数的定义的模块,可惜没有。而且未来也不见得有,APC到现在都还没有被加入核心。即便是有APC,仍然还要每次载入和销毁类的定义,大量的资源都被这样重复的工作浪费了。
不过话说回来,我也从未实际做过什么贡献,又有什么资格指责别人。

------解决方案--------------------
asp 依托 iis
.net 依托 .net framework
jsp 依托 tomcat
所以或多或少都提供了持续的对象

而 php 没有专属的宿主,因此高效的持续对象只能是水中月了

------解决方案--------------------
搞HTML5游戏开发还是可以的,线程/缓存是硬伤