У меня есть этот простой Observable, который называется:
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;
});
UserList представляет собой List<String>
размером 18000. userLookup — это уже существующая карта, и я создаю новое сопоставление на основе того, что находится в userLookup.
Однако по какой-то причине между десятой и двадцатой итерацией фильтра/карты выполнение наблюдаемых останавливается, и IntelliJ начинает отставать, как сумасшедший, и никогда не восстанавливается, пока я не перезапущу. Моя память настроена довольно высоко:
-Xms2048m
-Xmx4096m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops
И мой индикатор кучи не взорвался:
Единственным другим индикатором является то, что у меня есть очень длинная строка, напечатанная на консоли списка идентификаторов пользователей. Любые идеи относительно того, почему это наблюдаемое дергается?
/simple/complex/
, если бы это было так просто, вы могли бы очень просто рассуждать о том, почему это не работает... - person   schedule 15.06.2017