184 похожих чатов

Привет. Has() в среднем должен быть быстрее чем arraySum() ? По тестам

получается наоборот: https://pastebin.com/kzZny7JY
не на много, но все-таки

9 ответов

7 просмотров

вы уверены что это не просто девиация по ИО? сделайте max_threads=1

Maxim-İanoglo Автор вопроса
【D】【J】
вы уверены что это не просто девиация по ИО? сдела...

Выставил max_threads = 1. Тот же результат. Почему-то, когда время скорость чтения с диска равно между запросами, то и время работы запроса тоже почти равно, хотя "интуитивно" has() должен быть быстрее. Ну и почему-то с диска данные читаются быстрее когда используется arraySum() чем когда has(). В https://pastebin.com/ZCVvCW5C несколько результатов запросов.

Maxim İanoglo
Выставил max_threads = 1. Тот же результат. Почему...

во время запуска СПУ одинаково нагружен? судя по разницам у вас прыгает ИО а в целом все одинаково примерно. можете проверить через time clickhouse-client -q "query" есть ли разница в СПУ time. по сути has сделает то же что у вас в аррайсум (сравнение), разницы быть особо и не должно.

Maxim-İanoglo Автор вопроса
【D】【J】
во время запуска СПУ одинаково нагружен? судя по ...

Машина чистая. Только для теста. И arraySum же весь массив должен будет проверить, а has на первом же равном эллементе должен остановиться. Или нет ?

Maxim İanoglo
Машина чистая. Только для теста. И arraySum же ве...

нет, там все сложнее думаю =) simd все дела...

Maxim İanoglo
Машина чистая. Только для теста. И arraySum же ве...

ну и для аррайСум могут быть инструкции какие то, arraySumIf реально может быть быстрее. проверьте на очень длинных массивах

Maxim-İanoglo Автор вопроса
【D】【J】
ну и для аррайСум могут быть инструкции какие то, ...

С значительно удлиненным массива буду пробовать, спасибо. arraySumIf не вижу такой функции. Да и -If вроде к аггрегаторам можно только прикрепить

Maxim İanoglo
С значительно удлиненным массива буду пробовать, с...

да, упростил описание. имелось ввиду arraySum(If(xxx))

Maxim İanoglo
С значительно удлиненным массива буду пробовать, с...

короче лучше тестировать через time - там покажет CPU time. т.е. может быть у вас latency на диске большой ещё 100500 причин

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта