用 guava collection library 依照資料特性及你讀寫的需求選擇 ListMultimap 或 SetMultimap 的實作 如果資料彼此獨立 可試試開多個 thread 寫入 此時要使用 Multimaps.synchronizedSetMultimap(com.google.common.collect.SetMultimap<K, V>) 達到 thread safe一開始建立 multimap 物件時 要給預估的容量 假設資料平均分配 那就是 700萬除以bucket數量 避免過多rehashing700萬筆數目也不小 可開啟JDK附的Jvisualvm工具看memory 使用狀況 調大 heap size