Как я нашел, итерация по массиву с помощью Stream работает намного медленнее (74 слайда не учитывают такой случай). Я думаю, что это не единственная утечка производительности в лямбдах (предположим, в будущем она будет улучшена). Пример ниже выполнялся с Java 8 без каких-либо параметров:
//Language is an enum
Language[] array = Language.values();
System.err.println(array.length); // 72 items
long t = System.nanoTime();
for (Language l : array) System.out.println(l.getLanguageName());
System.err.println(System.nanoTime()-t); //nano time 1864724
t = System.nanoTime();
Arrays.stream(array).forEach(v -> System.out.println(v.getLanguageName()));
System.err.println(System.nanoTime()-t); //nano time 55812625 (55812625/1864724 = 29.93 times longer)
List<Language> list = Arrays.asList(array);
t = System.nanoTime();
for (Language l : list) System.out.println(l.getLanguageName());
System.err.println(System.nanoTime()-t); //nano time 1435008
t = System.nanoTime();
list.forEach(v -> System.out.println(v.getLanguageName()));
System.err.println(System.nanoTime()-t); //nano time 1619973 (1619973/1435008 = 1.128 times longer)
Вы можете использовать
dataTable
.showGroups(false)
, чтобы скрыть строки группировки ( документация ).
К сожалению, в настоящее время нет способа помешать dc.js сгруппировать таблицу данных, но если функция .group()
возвращает постоянное значение, вы получите одну группу.
Не путайте эту функцию .group()
с функциями других графиков. Это совершенно другое.