buffer-slayer 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
buffer-slayer 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 Apache
开发语言 Java
操作系统 跨平台
软件类型 开源软件
开发厂商
地区 国产
提 交 者 asuka shinji
适用人群 未知
收录时间 2017-04-21

软件简介

buffer-slayer 是一个把请求在内存中 buffer 并批量发送的工具,适用于批量能显著提升性能的组件(redis-client、jdbc), 支持一对一的回调。

快速启动


  io.bufferslayer
  buffer-spring-jdbc
  1.1.0
ReporterProperties reporterProperties = new ReporterProperties()
        .setBufferedMaxMessages(500)
        .setPendingMaxMessages(10000)
        .setMetrics("inmemory")
        .setMetricsExporter("http")
        .setParallelismPerBatch(5)
        .setSenderExecutor(new ThreadPoolExecutor(200,
            200, 0, TimeUnit.MILLISECONDS, new SynchronousQueue<>()));

BatchedJdbcTemplate template = new BatchedJdbcTemplate(reporterProperties);
template.setDataSource(dataSource);

Promise promise = template.update(...);
promise.done(success -> ...)
       .fail(reject -> ...);

吞吐量对比

Benchmark                                                      Mode  Cnt       Score  Units
BatchedJdbcTemplateBenchmark.high_contention_batched          thrpt   15    8709.042  ops/s
BatchedJdbcTemplateBenchmark.high_contention_unbatched        thrpt   15     271.529  ops/s
BatchedJdbcTemplateBenchmark.mild_contention_batched          thrpt   15    2146.595  ops/s
BatchedJdbcTemplateBenchmark.mild_contention_unbatched        thrpt   15     262.621  ops/s
BatchedJdbcTemplateBenchmark.no_contention_batched            thrpt   15    1194.852  ops/s
BatchedJdbcTemplateBenchmark.no_contention_unbatched          thrpt   15     201.806  ops/s

 

展开阅读全文

代码

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2013/01/23 17:44

Direct Buffer vs. Heap Buffer

Direct Buffer vs. Heap Buffer 1、 劣势:创建和释放Direct Buffer的代价比Heap Buffer得要高; 2、 区别:Direct Buffer不是分配在堆上的,它不被GC直接管理(但Direct Buffer的JAVA对象是归GC管理的,只要GC回收了它的JAVA对象,操作系统才会释放Direct Buffer所申请的空间),它似乎给人感觉是“内核缓冲区(buffer ...

0
1
发表了博客
2014/03/10 22:13

buffer

此方法位于: Buffer是一个用于特定基本类型数据的容器。  缓冲区是特定基本类型元素的线性有限序列。除内容外,缓冲区的基本属性还包括容量(capacity)、限制(limit)和位置(position): 缓冲区的capacity是它所包含的元素的数量。缓冲区的capacity不能为负并且不能更改。 缓冲区的limit 是第一个不应该读取或写入...

0
1
发表了博客
2018/04/06 13:23

24、vb2_buffer和videobuf_buffer比较分析

看韦东山视频第三期摄像头驱动中构造了自己的vivi驱动,但是使用的videoBuf结构体,新的版本用的是vb2_buffer结构,我机器上(ubuntu12.04)使用的内核是linux3.2,看了看改动还是挺大的,自己看代码自己理解了下: 首先是韦东山老师总结的摄像头驱动的架构如下 摄像头驱动程序必需的11个ioctl: // 表示它是一个摄像头设...

0
0
发表于开发技能专区
2014/03/06 17:20

三 Buffer

Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。 下面是NIO Buffer相关的话题列表: Buffer的基本用法 Buffer的cap...

0
1
发表了博客
2016/03/09 14:31

NIO buffer

ByteBuffer buffer = ByteBuffer.allocate(int); ByteBuffer buffer = ByteBuffer.allocateDirect(int); allocate返回的其实是ByteBuffer的子类HeapByteBuffer; allocateDirect返回的其实是MappedByteBuffer的子类DirectByteBuffer; CharBuffer.allocate(int cap); 创建的是char[]数组,即cap是char的数量,而不是byte的...

0
1
发表了博客
07/28 06:39

Buffer的使用

// 实例一个Buffer对象 var buffer = new Buffer("Hello World"); console.log(buffer); // 通过from 来创建一个Buffer对象 buffer = Buffer.from("Hello World"); cosole.log(buffer[0]) // Buffer 可以自动扩容......

0
0
发表了博客
2018/06/15 06:54

Buffer的使用

虽然知道了怎么实例化Buffer,但这还远远不够,因为Buffer类使随nodejs一起发布的核心库,Buffer不仅能处理tcp连接中发送接收的数据,也能处理图像或者是压缩文件,甚至说文件系统里面的数据,包括网络中二进制数据流,只要是nodejs中能处理的io操作中都可能用到buffer,那么具体要怎么用 要学会Buffer的使用,一部分是B...

0
0
发表了博客
2015/07/05 17:15

ring buffer

1. 有关ring buffer的理解 1) ring buffer位首尾相接的buffer,即类似生活中的圆形跑道; 2) 空闲空间+数据空间=ring buffer大小 3) ring buffer的读写,类似生活中在圆形跑道上的追赶游戏,领跑者位write,追赶着为read 4) 如果read跑的太快,追上write,追赶者read要停下来,否则游戏结束。即保证没有数据空间时,不再...

0
1
发表了博客
2018/08/04 15:58

Buffer --缓冲器

一. 启动Buffer缓冲器 node 输入 buffer 创建一个新的buffer var buf = new buffer(''hello word) 查看buf的长度 buf.length 运行buf的结果 buf.toString(); 结果 设置buffer长度的固定值:先新建一个新的buf 例如:设置固定值为5; var buf2= new Buffer(5) 查看长度 buf2.length 使用buf.copy设置起始值和...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
4 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部