• 对象池技术


    在arpg页游场景里面,经常被杀的怪物对象需要反复生成、销毁。频繁的触发垃圾回收会降低游戏运行效率,对象池技术就是为了解决这种问题

    对象池特点:

    1、聚合有一个容器,该容器装有已生成的对象;

    2、封装对象的生成操作;

    3、封装对象的销毁操作;

    ============================================================

    ==============简单的示例,可以自动扩容的对象池===========================

    public class ObjectPool
    {
    protected var pool:Array = [];

    protected var cl:Class;

    private var property:Object;

    private var count:int = 0;

    public function ObjectPool(c:Class,property:Object = null)
    {
    this.cl = c;

    this.property = property;
    }

    /**获取实例*/
    public function getObject():*{
    if (pool.length > 0){
    return pool.pop();
    }else{
    trace("当前对象数目" + (++count));
    return new cl;
    }
    }

    /**回收实例,这里并没有对obj的属性进行处理,建议在回收前自行处理*/
    public function recycle(obj:*):void{

    pool.push(obj);
    }

    protected function initialize(ins:cl):void{

     if (property){

        for (var key:String in property){

          if(ins.hasOwnProperty(key)){

               ins[key] = property[key];

            }

        }

    }

    }


    /**清空*/
    public function release():void{
    pool = [];
    }
    }

  • 相关阅读:
    codeforces #330 div2
    codeforces #332 div2
    Codeforces Round #331 (Div. 2)C. Wilbur and Points
    poj 01背包
    zoj 1200 Mining
    nginx反向代理与负载均衡
    springcloud----config分布式配置中心
    springcloud--zuul 网关
    springcloud ----Hystrix熔断器
    docker私有镜像仓库harbor搭建和配置
  • 原文地址:https://www.cnblogs.com/maomaolw3/p/4920746.html
Copyright © 2020-2023  润新知