做了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.   

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

  2.   

    只能寄希望于PHP的未來了.
    我以前用php開發過一個多人同時在線的考試系統,因為客戶的特殊要求,所以導致效率很差,如果能夠有好的緩存機制就好了.
    期待中...
      

  3.   

    APC 现在好像是由 Laruence 在维护?或许可以将一些意见反馈给他。
      

  4.   

    asp 依托 iis
    .net 依托 .net framework
    jsp 依托 tomcat
    所以或多或少都提供了持续的对象而 php 没有专属的宿主,因此高效的持续对象只能是水中月了
      

  5.   

    搞HTML5游戏开发还是可以的,线程/缓存是硬伤
      

  6.   

    http://www.scirra.com/arcade/addicting-shooter-games/349/project-blaze-zerohttp://www.scirra.com/arcade/games/addicting-rotary-games/766/grav-suithtml5我也很感兴趣我用phonegap,有兴趣的加入我的群:95303036
      

  7.   

    最近跟同事用java,了解了一些信息:可能一个程序最大的消耗在io上,而不是程序计算之类的工作;另外pecl里面出了新的php线程扩展,搜索pthread可以获得。