使用设计模式后的副作用
但是持有对象的同时也带来了线程不安全的副作用???
系统运行时产生了大量的碎片类,不会对内存造成问题么,会不会导致GC反复动作?
也没有办法缓存,缓存了也是白搭,大家是怎么考虑这个问题的?
那是多线程共享机制落后的副作用,现在Scala等并行语言已经抛弃,所以,这不是持有对象的副作用,而是实现对象的技术的能力不足。
关于大量碎片类,兵马俑terracotta都找到技术上解决方式,关键是使用IMDG,IMDG不同于缓存,而是一直驻留内存,使用JVM的永久代来持有对象。
使用Scala能解决对象并发锁,使用JVM能够有效管理持有内存(Scala运行在JVM上),至于如何优化碎片,最小化JVM暂停见:
如何驯服Java GC
[该贴被banq于2011-06-30 08:55修改过]