显示模式: 普通 | 列表

RedHat5下Apache+MySQL+PHP的安装

关于本站的友情连接

PhpMe_Blog完成回复邮件通知的功能

PhpMe_Blog 1.10 开源决定!

PhpMe_CMS完成1.15版本的开发,PhpMe技术网站恢复更新

发布 文件共享管理系统 - PHPME_SHARES Alpha 1.0

Zend_Cache 遇到 __PHP_Incomplete_Class

当使用Zend_Cache缓存非字符串数据时, 要求设置Zend_Cache自动序列化, 但是有时候从cache中load出来的数据是__PHP_Incomplete_Class对象.
这个问题其实很简单, 序列化一个对象时,要求它的类已经被定义, 如果没有定义,就出现返回__PHP_Incomplete_Class的情况, 所以只要定义了被缓存对象的类就可以了.
当然出现这种情况还有另外一种可能,就是已经设置了序列化时的回调函数, 而这个回调函数在从cache中load数据时还没有执行结束, 所以它就返回了一个叫未完成的类,呵呵



阅读全文...

标签: Cache  Memcache  Memcached 

分类: Web Developing | PHP  引用: 0  评论: 1  点击: 28

PHP程序提速方法

php程序提速方法
  1. php加速工具 eaccelerator 对php代码有3-5倍的提升,它的原理是将php的编译结果缓存起来,下次只要php的内容没有发生变化,则直接读取缓存的内容,省去了每次编译脚本所 花的时间
  2. apache的mod_gzip模块对静态页面的压缩功能
  3. 使用php的ob_gzhandler的压缩输出页面功能,适用于php动态页面
  4. 缓存功能可以使用php自带的apc缓存系统
  5. 共享内存功能Shared Memory Functions
  6. ICE for php功能,性能比SOAP及XML-RPC有数量级的提高,ice是基于tcp/ip的直接通信
  7. memcache,分布式内存缓存系统,如果要做分布式系统这个很有用处
  8. ZendCache是一个php脚本高 速Cache,它可以将刚执行的php脚本文件的编译结果存放在Web服务器的内存中,如果下一次有人再请求此页,它就可以很快将其送出。免去了每次用户 请求php文件,服务器都编译一次脚本所花的时间。同时,免取了从磁盘上查找、读取php文件所花的时间。所以可以大大提高服务器的相应速度。不过ZendCache是 收费的,功能与eaccelerator类似。
  9. Zend Optimizer用优化代码的方法来提高PHP 4.0应用程序的执行速度。实现的原理是对那些在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化。一般情况下,执行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。这意味着网站的访问者可以更快的浏览网页,从而完成更多的事务,创造更好的客户满意度。 更快的反应同时也意味着可以节省硬件投资,并增强网站所提供的服务。所以,使用Zend Optimizer,就等于提高了电子商务的盈利能力。Zend Optimizer能给PHP用户带来很多益处,特别是那些运营网站的人。快速运行PHP程序可以显著降低服务器的CPU负载,并可以减少一半的反应时 间,也就是从访问者点击链接到服务器开始读取页面之间的时间。


阅读全文...

标签: 加速  优化 

分类: Web Developing | PHP  引用: 0  评论: 0  点击: 18

游戏中的基础碰撞检测算法

在游戏中,经常需要进行碰撞检测的实现,例如判断前面是否有障碍以及判断子弹是否击中飞机,都是检测两个物体是否发生碰撞,然后根据检测的结果做出不同的处理。

进行碰撞检测的物体可能有些的形状和复杂,这些需要进行组合碰撞检测,就是将复杂的物体处理成一个一个的基本形状的组合,然后分别进行不同的检测。

下面简单介绍一下两种最基本的形状进行碰撞的时候进行的处理。

1、矩形和矩形进行碰撞

一般规则的物体碰撞都可以处理成矩形碰撞,实现的原理就是检测两个矩形是否重叠。我们假设矩形1的参数是:左上角的坐标是(x1,y1),宽度是w1,高度是h1;矩形2的参数是:左上角的坐标是(x2,y2),宽度是w2,高度是h2。

在检测时,数学上可以处理成比较中心点的坐标在x和y方向上的距离和宽度的关系。即两个矩形中心点在x方向的距离的绝对值小于等于矩形宽度和的二分之一,同时y方向的距离的绝对值小于等于矩形高度和的二分之一。下面是数学表达式:

x方向:| (x1 + w1 / 2) – (x2 + w2/2) | < |(w1 + w2) / 2|

y方向:| (y1 + h1 / 2) – (y2 + h2/2) | < |(h1 + h2) / 2|

在程序中,只需要将上面的条件转换成代码就可以实现了。


阅读全文...

标签: 游戏  碰撞  算法 

分类: Programming | Related  引用: 0  评论: 0  点击: 72

ETS named_table

new(Name, Options) -> tid() | atom()

  • Name = atom()
  • Options = [Option]
  •  Option = Type | Access | named_table | {keypos,Pos} | {heir,pid(),HeirData} | {heir,none} | {write_concurrency,bool()}
  •   Type = set | ordered_set | bag | duplicate_bag
  •   Access = public | protected | private
  •   Pos = int()
  •   HeirData = term()
Creates a new table and returns a table identifier which can be used in subsequent operations. The table identifier can be sent to other processes so that a table can be shared between different processes within a node.
The parameter Options is a list of atoms which specifies table type, access rights, key position and if the table is named or not. If one or more options are left out, the default values are used. This means that not specifying any options ([]) is the same as specifying [set,protected,{keypos,1},{heir,none},{write_concurrency,false}].


阅读全文...

标签: ETS  named_table 

分类: Programming | Erlang  引用: 0  评论: 0  点击: 8
< 1 2 3 4 5 6 7 8 9 10 >