1
我有這個簡單的可觀測被稱爲:可觀察鏈模具上和IntelliJ時滯/凍結
Map<Integer, List<Long>> localLookup = new HashMap<>();
return Observable.from(userList)
.filter(lookupId -> userLookup.containsKey(lookupId))
.map(lookupId -> {
int userId = userLookup.get(lookupId);
if (localLookup.containsKey(userId)) {
localLookup.get(userId).add(Long.valueOf(lookupId));
} else {
localLookup.put(userId, Arrays.asList(Long.valueOf(lookupId)));
}
return lookupId;
}).toList().map(results -> {
return localLookup;
});
的用戶列表爲18000大小的List<String>
的userLookup是預先存在的地圖,我創建一個新的映射基於userLookup中的內容。
不過,出於某種原因,在過濾器/映射的第十次和第二十次迭代之間,可觀察停止的執行發生,IntelliJ開始落後於瘋狂,並且直到我重新啓動時才真正恢復。我的內存設置相當高:
-Xms2048m
-Xmx4096m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops
其他唯一的指標是,我有打印的用戶ID列表的控制檯超長字符串。任何有關爲什麼這個觀察結果正在消失的想法?
'/ simple/complex /',如果它非常簡單,你就可以推斷它爲什麼很簡單失敗... –