`
lixjluck
  • 浏览: 101748 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

DirectMemory实现方式

阅读更多

    我们都知道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");

 

 

  存在的问题:

  1. Cache类是单例,在同一个JVM里,不能根据实际应用创建不同的Cache(可以实现自己的Cache);
  2. OffHeapMemoryBuffer中ByteBuffer 空间存在浪费;
  3. 要根据业务类型,合理分配OffHeapMemoryBuffer的容量;
  4. 目前Map<key>还是存放在Heap里,只是Value存放在Off-Heap,不过可以根据需要修改代码;

 

 

  Direct-Memory依赖的其他类库

  1. JoSQL SQL for Java Objects http://josql.sourceforge.net/
  2. guava google-common-collection http://code.google.com/p/guava-libraries/
  3. 其中的MapMaker的使用

  

  参考:

  1. JDK1.4引入的DirectByteBuffer
  2. BigMemory
  • 大小: 14.3 KB
  • 大小: 69.5 KB
分享到:
评论

相关推荐

    stm32 adc采样dma方式定时器详情讲解实现完整步骤.doc

    DMA是“直接存储器访问”(Direct Memory Access)的缩写。DMA使用专门的控制器,把CPU从数据传输过程中解放出来,让CPU可以集中处理程序的逻辑。DMA数据传输模式分为两种: 抢占模式:每次DMA传输时都会占用总线,...

    io编程实现

    在POSIX兼容的系统上,例如Linux系统,I/O操作可以有多种方式,比如DIO(Direct I/O),AIO(Asynchronous I/O 异步I/O),Memory-Mapped I/O(内存映设I/O)等,不同的I/O方式有不同的实现 方式和性能,在不同的应用中可以...

    Linux系统中PCI设备DMA数据传输的实现 (2012年)

    将传统数据传输方式与存储器直接存取(direct memory access,DMA)数据传输方式进行了对比分析,结合外设组件互连标准(peripheral component interconnection,PCI)总线的特点,以嵌入式Linux系统为平台,重点...

    软件评测师试卷考点

     Direct Memory Access【存储器直接访问】。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU...

    DMA.rar_MSP430f16x DMA

    直接存储器存取(DMADirect Memory Access)方式是用硬件实现存储器与存储器之间或存储器与I\O设备之间直接进行高速数据传送,不需要CPU的干预。这种方式通常用来传送数据块。MSP430f16x系列单片机内部含有DMA模块,...

    基于 FPGA与 SDRAM的高效 LCD控制器设计 (2013年)

    为满足出租车拼车系统对LCD(Liquid ...设计中采用自定义图形处理命令,使用高速SDRAM (Synchronous Dynamic Random Access Memory)作为显存,以提升像素填充率、DMA(Direct Memory Access)操作方式和硬件多缓冲帧同步切换

    Mycat-server-1.6-RELEASE源码

    支持非堆内存(Direct Memory)聚合计算(1.6) 支持PostgreSQL的native协议(1.6) 支持mysql和oracle存储过程,out参数、多结果集返回(1.6) 支持zookeeper协调主从切换、zk序列、配置zk化(1.6) 支持库内分表...

    vc++ 应用源码包_1

    媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染...

    vc++ 应用源码包_2

    媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染...

    vc++ 应用源码包_6

    媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染...

    vc++ 应用源码包_5

    媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染...

    vc++ 应用源码包_3

    媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染...

    vc++ 开发实例源码包

    媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 如题。主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套...

    基于DMA控制器的SoC系统设计

     DMA(Direct Memory Access,直接存储器存取)是一种快速传送数据的机制。DMA控制器能够有效替代微处理器的加载/存储指令,显着提高系统的并行能力。DMA是在存储器与输入/输出设备间直接传送数据,是一种完全由硬件...

    并行深度学习系统SpeeDO.zip

    Direct Memory Access,全称远程直接数据存取,专用于解决网络传输中服务器端数据处理的延迟)等高性能技术, 而这些技术需要昂贵的硬件支持,大大增加了系统构建和维护的成本和难度,导致这些系统很难复制和普及到通用...

    高速数据采集的闪光焊参数测试系统的研究 (2006年)

    重点描述了采用DMA ( Direct Memory Access)循环双缓冲采集方式和VC + +6.0多线程技术将高速数据采集引入到闪光焊质量分析中的实施过程。该系统实现了数据高速采集、实时显示以及数据管理功能。应用证明,该系统运行...

    设计低功耗15F红外遥控器的详细资料说明

    DMA,全称Direct Memory Access,即直接存储器访问。   DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输...

    Ext Js权威指南(.zip.001

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

Global site tag (gtag.js) - Google Analytics