假设我有一台具有 12MB 缓存的 6 核机器。我将它用于具有几 GB 堆的服务器应用程序(其中大部分是 2 级 Hibernate 缓存)。
我注意到大多数时候我有少数线程主动服务客户端请求(燃烧 CPU 和与 DB 对话),以及大约 30-50 个线程只与客户端进行良好的同步网络 IO。
在学习 Java 内存模型时,我想知道这是否会影响性能。许多网络 IO 线程之一的上下文切换是否会破坏“活动”线程的线程/CPU 缓存?这种级别的并发本身是否有害(除了内存缓存)?
考虑到 CPU 缓存相对于整个应用程序内存有多小,这真的很重要吗?如何确定边界在哪里?