我的代码执行了大量的输入/输出,这通常涉及创建临时数组来保存某些大小的字节或字符 - 我经常使用4096.我开始怀疑 - 没有实际测试 - 来验证它是否会更好地集合这些数组.我的代码将改为这样的东西
take array from pool
try {
read from one inputStream
write to another outputstream using array
} finally {
return array to pool
}
Run Code Online (Sandbox Code Playgroud)
更新我写了一个小程序做了两件事,创建了数组并使用了apache commons池.两者都循环了很多次(100*100*100)并创建/获取,填充数组,然后释放.我在开始时添加了一些热身jit并忽略了那些结果.每次运行都会在创建和池形式中运行十几次,在两者之间交替.
池和创建表单之间没有什么区别.但是,如果我向一个实例返回池中的apache commons池触发的回调中添加了一个clear数组,那么该池就会比创建的表单慢得多.
这并不是一个真正的答案,但如果您想使用数组池而不是每次需要数组时创建数组,则需要考虑一些重要的要点。
| 归档时间: |
|
| 查看次数: |
3032 次 |
| 最近记录: |