我有一个高吞吐量、低延迟的应用程序(3000请求/Sec,每个请求100 we ),我们大量使用Java8 ConcurrentHashMap执行查找。通常,这些映射由单个后台线程和从这些映射读取的多个线程更新。
我看到了性能瓶颈,在分析中,我发现ConcurrentHashMap.get是热点,占用了大部分时间。
另一种情况是,我认为ConcurrentHashMap.computeIfAbsent是热点,尽管映射函数的延迟非常小,配置文件显示computeIfAbsent花费了90%的时间执行自身,而执行映射函数的时间却非常少。
我的问题是有什么办法可以提高我的表现吗?我有大约80个线程同时从CHM读取。
发布于 2015-11-28 11:22:00
我有大约80个线程同时从CHM读取。
最简单的事情是
如果您在低延迟系统中看到任何延迟,则会遇到IMHO问题。
https://stackoverflow.com/questions/33901070
复制相似问题