小编Sar*_*mun的帖子

ThreadLocal变量的性能

ThreadLocal变量读取多少比常规字段慢?

更具体地说,简单的对象创建比访问ThreadLocal变量更快还是更慢?

我认为它足够快,因此ThreadLocal<MessageDigest>实例比MessageDigest每次创建实例要快得多.但这也适用于字节[10]或字节[1000]吗?

编辑:问题是在调用ThreadLocalget 时真正发生的事情?如果那只是一个领域,就像任何其他领域一样,那么答案就是"它总是最快",对吧?

java performance multithreading thread-local

83
推荐指数
4
解决办法
3万
查看次数

最高效的Java原始集合库

什么是最好的Java原始集合库?(大多数记忆和时间效率)

我发现了Trove和FastUtil是最常用的,但还没有找到他们(或其他人之间)比较多

有比较可用吗?

java collections performance primitive-types

37
推荐指数
3
解决办法
2万
查看次数

扩展ByteBuffer类

有没有办法创建扩展ByteBuffer类的类?

ByteBuffer的一些抽象方法是包私有的,如果我创建包java.nio,则抛出安全异常.

出于性能原因,我想这样做 - 例如,getInt有大约10个方法调用,以及相当多的if.即使剩下所有检查,只有方法调用被内联并且大/小端检查被删除,我创建的测试表明它可以快4倍.

java nio bytebuffer

14
推荐指数
3
解决办法
6873
查看次数

AtomicIntegerArray与AtomicInteger []

是什么意思AtomicIntegerArrayAtomicInteger[]?哪一个更快使用?(我注意到的只是第一个占用更少的空间,但这意味着每次重新检查都会检查数组的边界,这会使它变慢?)

编辑:在阵列预先初始化的情况下.

java concurrency atomic-values

14
推荐指数
2
解决办法
5276
查看次数

指定ThreadPoolExecutor问题

有没有办法创建Executor,它总是至少有5个线程,最多20个线程,以及任务的无界队列(意味着没有任务被拒绝)

我尝试了新ThreadPoolExecutor(5, 20, 60L, TimeUnit.SECONDS, queue) 的所有可能性,我想到的队列:

new LinkedBlockingQueue() // never runs more than 5 threads
new LinkedBlockingQueue(1000000) // runs more than 5 threads, only when there is more than 1000000 tasks waiting
new ArrayBlockingQueue(1000000) // runs more than 5 threads, only when there is more than 1000000 tasks waiting
new SynchronousQueue() // no tasks can wait, after 20, they are rejected
Run Code Online (Sandbox Code Playgroud)

没有人按原样工作.

java multithreading threadpool

5
推荐指数
1
解决办法
3422
查看次数

从代码内部创建内存快照(Java)

是否有可能从程序内部调用一些java库,使java创建该程序的内存快照?(默认.hprof文件)

java memory profiling snapshot

4
推荐指数
1
解决办法
1650
查看次数

在运行时创建带有注释字段的java类

问题是我需要在运行时创建一个这样的类:

public class Foo {
  @Bar int value0;
  @Bar int value1;
  @Bar int value2;
....
}
Run Code Online (Sandbox Code Playgroud)

在运行时决定字段数.

我在看Javassist,在那里你可以创建一个新类,并为其添加字段,但我还没有找到一种方法来注释这些字段.

java code-generation annotations field javassist

1
推荐指数
1
解决办法
1760
查看次数