??????飺????? Java™ ?????д?????????????????????“???й?”?????????????????????????????????????????????????????????????£?????????ó??????????? Brian Goetz ???????????????????????????????????????????й???

????????????????GC?????????????????????????? ???????????ó??????????????????????е????????? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????а?????????????????????????????????????????????????unintentional object retention????

??????? Map ???????й?

???????????????????????????? Map ????????????????transient object???????????????????????е?????????????????????????????????????????????????ó??????????????????????????????????????Щ????????????????????????????????????????????? Socket ?????????Щ?????????????????????? Socket ????????????????? Socket ???????????????????????????????????? Map ?д洢??Щ????????嵥 1 ?е? SocketManager ???????

?????嵥 1. ????????? Map ???????????????????


public class SocketManager {
    private Map m = new HashMap();
  
    public void setUser(Socket s?? User u) {
        m.put(s?? u);
    }
    public User getUser(Socket s) {
        return m.get(s);
    }
    public void removeUser(Socket s) {
        m.remove(s);
    }
}
SocketManager socketManager;
...
socketManager.setUser(socket?? user);


??????????????????????????????????????????????????????????????????????????????????????????????????? Map ?????????????????Socket ?? User ????????????? Map ?У?????????????????????????????????? Socket ?? User ??????????????????ó?????????????????Щ???????????????????????????????????????к???汬?????????????????????????????????????? Socket ????????????????????????????????????????????????й????

??????????й?

?????????????й???????????????????????? OutOfMemoryError???????????????????????????????????????????????????????????????????????й???????????????? -verbose??gc ???? -Xloggc ?????? JVM???????? GC ???????????????????????л????????????????????????????????????????????????????????檔??? GC ?????????????и?????????????????????????????????????????????????????????????? GC ??????????

?????й?????????? GC ????????????η???????????????JTune ?????????????????? GC ?????С???????????????????????????????????????????????????????÷?????????baseline ??ú? current load ??á????????????ó???baseline ???????ó?????????κθ??ɡ????????????y?????????????????current load ???????????????????????????????????????????????檔???????????????????ó????????????????????????????????????ó????????????????????????????????????£??????ó??????????????????????????????????????????????

?????嵥 2 ????????????й??????MapLeaker ???????д?????????????? Map ?м??????????????????????????????????????????????????????????????????????????????????????

?????嵥 2. ???л??? Map ?????й??????