鉴于我们有一个应用程序被并发构造严重污染,使用了多种技术(不同的人在没有清晰架构的情况下工作),多个有问题的锁“以防万一”,线程安全队列。CPU 使用率约为 20%。
现在我的目标是对其进行优化,以便更好地利用缓存并总体提高其性能和服务时间。
我正在考虑将父进程固定到单个核心,删除所有导致内存条的东西,替换所有线程安全数据结构并用一些UnsafeReentrantLock
简单地使用普通引用字段但照顾排他执行需求的锁替换所有锁......
我希望我们最终会得到对缓存更友好的应用程序,因为我们不会一直快速刷新缓存(没有 membars)。我们的开销会更少,因为我们不需要线程安全的数据结构、volaties、原子和替换各种锁,我认为服务时间也会改善,因为我们不再在多个线程安全队列上同步......
有什么我在这里忽略的吗?
也许必须注意阻塞操作,因为它们不会出现在 20% 的使用中?