AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是...
分类:
编程语言 时间:
2014-10-24 18:17:24
阅读次数:
253
我们在写高效服务时,许多需要缓存,一般缓存组件都需要加锁,我最近想了一个方法,感觉还不错,分享一下。直接上代码: public abstract class SimpleObjPool { int _locker = 0; int _cnt = 0; ...
分类:
其他好文 时间:
2014-10-21 17:12:06
阅读次数:
171
线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。比 如:一个应用要和网络打交道,有很多步骤需要访问网络,为了...
分类:
移动开发 时间:
2014-10-17 20:20:55
阅读次数:
253
AOP(Aspect Orient Programming),也就是面向方面编程,作为面向对象编程的一种补充,专门用于处理系统中分布于各个模块(不同方法)中的交叉关注点的问题,在 Java EE 应用中,常常通过 AOP 来处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。...
分类:
编程语言 时间:
2014-09-25 12:16:08
阅读次数:
444
在 Unity 的运行环境中创建或是释放(destroy)对象需要付出昂贵的代价。例如:在飞机大战游戏中,当用户点击射击的时候,会创建很多“子弹”对象,当“子弹”对象碰到敌人时,会被销毁,只要用户一点击射击就会执行这样的逻辑当然这是不可取的,因为第一句话告诉了我们不断的创建销毁对象时要付出昂贵的代价...
分类:
其他好文 时间:
2014-09-23 23:14:45
阅读次数:
270
随着JVM虚拟机和JIT即时编译技术的发展,对象的分配和回收是个非常轻量级的工作。但是对于缓冲区Buffer,情况却稍有不同,特别是对于堆外直接内存的分配和回收,是一件耗时的操作。为了尽量重用缓冲区,Netty提供了基于内存池的缓冲区重用机制。性能测试表明,采用内存池的ByteBuf相比于朝生夕灭的ByteBuf,性能高23倍左右(性能数据与使用场景强相关)。
在4.x版本中,UnpooledB...
分类:
Web程序 时间:
2014-09-23 20:56:15
阅读次数:
425
从一个简单的对象池类开始说起对象池背后的理念其实是非常简单的。我们将对象存储在一个池子中,当需要时在再次使用,而不是每次都实例化一个新的对象。池的最重要的特性,也就是对象池设计模式的本质是允许我们获取一个“新的”对象而不管它真的是一个新的对象还是循环使用的对象。该模式可以用以下简单的几行代码实现:p...
分类:
其他好文 时间:
2014-09-04 01:31:27
阅读次数:
220
javaassist
ClassPool 是javassist的一个对象池,通过
pool.insertClassPath(string);这个方法可以向池子里添加对象,但是有个问题,如果我们通过这种方式添加了池,class改变了,池里的文件仍然为原来的class文件。
并没有重新加载一次class文件,而classpool类并没有提供对应的方法。
除了一个 CtClass re...
分类:
编程语言 时间:
2014-08-29 14:40:58
阅读次数:
500
之前看starling资料的时候,发现印度一高人的hungry-hero,膜拜之情油然而生。 现在正好拿素材来做个cocos2d-js的版本。暂时在手机上运行闪退,还没时间看具体原因。 在chrome下运行,内存控制还不错,可见cocos2d-js的对象池和粒子系统的回收都做得不错。 演示地址:(没...
分类:
Web程序 时间:
2014-08-26 21:12:16
阅读次数:
338