我们都知道Terracotta收购了EhCache,同时推出了基于off-heap技术的bigMemory,从而摆脱JVM GC带来的性能问题;
就Java 本地Cache(非分布式)而言,存在3个地方可以存放数据:Heap, OffHeap和Disk
BigMemory非开源产品,所以其源码不能通过正常渠道拿到。
同时,有一个开源产品DirectMemory实现了类似BigMemory的Cache实现,
https://github.com/raffaeleguidi/DirectMemory
它的类图:
使用:
Cache.init(10, 100);
Cache.put("test1", "t".getBytes());
Cache.put("test2", "t".getBytes());
Cache.put("test3", "t".getBytes());
byte[] p = Cache.retrieve("test1");
存在的问题:
- Cache类是单例,在同一个JVM里,不能根据实际应用创建不同的Cache(可以实现自己的Cache);
- OffHeapMemoryBuffer中ByteBuffer 空间存在浪费;
- 要根据业务类型,合理分配OffHeapMemoryBuffer的容量;
- 目前Map<key>还是存放在Heap里,只是Value存放在Off-Heap,不过可以根据需要修改代码;
Direct-Memory依赖的其他类库
- JoSQL SQL for Java Objects http://josql.sourceforge.net/
- guava google-common-collection http://code.google.com/p/guava-libraries/
- 其中的MapMaker的使用
参考:
- JDK1.4引入的DirectByteBuffer
- BigMemory
- 大小: 14.3 KB
- 大小: 69.5 KB
分享到:
相关推荐
DMA是“直接存储器访问”(Direct Memory Access)的缩写。DMA使用专门的控制器,把CPU从数据传输过程中解放出来,让CPU可以集中处理程序的逻辑。DMA数据传输模式分为两种: 抢占模式:每次DMA传输时都会占用总线,...
在POSIX兼容的系统上,例如Linux系统,I/O操作可以有多种方式,比如DIO(Direct I/O),AIO(Asynchronous I/O 异步I/O),Memory-Mapped I/O(内存映设I/O)等,不同的I/O方式有不同的实现 方式和性能,在不同的应用中可以...
将传统数据传输方式与存储器直接存取(direct memory access,DMA)数据传输方式进行了对比分析,结合外设组件互连标准(peripheral component interconnection,PCI)总线的特点,以嵌入式Linux系统为平台,重点...
Direct Memory Access【存储器直接访问】。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU...
直接存储器存取(DMADirect Memory Access)方式是用硬件实现存储器与存储器之间或存储器与I\O设备之间直接进行高速数据传送,不需要CPU的干预。这种方式通常用来传送数据块。MSP430f16x系列单片机内部含有DMA模块,...
为满足出租车拼车系统对LCD(Liquid ...设计中采用自定义图形处理命令,使用高速SDRAM (Synchronous Dynamic Random Access Memory)作为显存,以提升像素填充率、DMA(Direct Memory Access)操作方式和硬件多缓冲帧同步切换
支持非堆内存(Direct Memory)聚合计算(1.6) 支持PostgreSQL的native协议(1.6) 支持mysql和oracle存储过程,out参数、多结果集返回(1.6) 支持zookeeper协调主从切换、zk序列、配置zk化(1.6) 支持库内分表...
媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染...
媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染...
媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染...
媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染...
媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染...
媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 如题。主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套...
DMA(Direct Memory Access,直接存储器存取)是一种快速传送数据的机制。DMA控制器能够有效替代微处理器的加载/存储指令,显着提高系统的并行能力。DMA是在存储器与输入/输出设备间直接传送数据,是一种完全由硬件...
Direct Memory Access,全称远程直接数据存取,专用于解决网络传输中服务器端数据处理的延迟)等高性能技术, 而这些技术需要昂贵的硬件支持,大大增加了系统构建和维护的成本和难度,导致这些系统很难复制和普及到通用...
重点描述了采用DMA ( Direct Memory Access)循环双缓冲采集方式和VC + +6.0多线程技术将高速数据采集引入到闪光焊质量分析中的实施过程。该系统实现了数据高速采集、实时显示以及数据管理功能。应用证明,该系统运行...
DMA,全称Direct Memory Access,即直接存储器访问。 DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输...
7.2.7 为ext.direct服务的代理:ext.data.proxy.direct / 312 7.2.8 客户端代理:ext.data.proxy.client / 314 7.2.9 从变量中提取数据的代理:ext.data.proxy.memory / 314 7.2.10 使用浏览器存储的代理:ext....