C++ zero-cost abstractions на примере хеш-таблиц в ClickHouseразработчик ClickHouse C++ zero-cost abstractions на примере хеш-таблиц в ClickHouse Введение в хеш-таблицы Содержание 01 Основные вопросы дизайна 02 Бенчмарки 03 C++ дизайн хэш-таблицы 04 Введение com/rurban/smhasher Выбор хеш-функции 10 10 По умолчанию в ClickHouse плохие хэш-функции 1. CRC32-C для целочисленных типов. Одна инструкция (на самом деле две) процессора latency 3 такта 2. Специальная Отдельно обрабатывать пустое значение и не хранить его в хэш- таблице. Способ размещения в памяти 22 22 Cжатое хранения метадаты и данных. Бенчмарки 03 Бенчмарки 24 24 Как не надо делать бенчмарки 250 码力 | 49 页 | 2.73 MB | 1 年前3
Тестирование ClickHouse которого мы заслуживаемТестирование ClickHouse, которого мы заслуживаем ClickHouse: как проект › Открытый исходный код на C++ › Больше 300 тысяч строк кода › Открытый репозиторий на GitHub › Изменения через пулл реквесты › В Воспроизводимость › Быстро! 8 / 77 Тестирование ClickHouse, которого мы заслуживаем Сборка: особенности › C++17, clang, gcc › -Wall -Werror -Wpedantic -Wextra › Настроенный -Weverything › Система сборки CMake взаимодействие с другими системами › Разрывать сеть между компонентами › Запуск окружения одной командой › Cценарий теста на языке программирования › Минимум требуемых зависимостей › Без мусора на хосте 24 /0 码力 | 84 页 | 9.60 MB | 1 年前3
Firebird Null Guide Russianу вас есть исходный код и вы понимаете язык, на котором написана библиотека функций (на- пример, C/C++), проверьте код функции. 3. Проверьте функцию на корректность ее работы с входным параметром NULL null) /* делает то же самое, что и предыдущий пример */ • update Numbers set Total = A + B + C where A + B + C is not null Можно сказать, что в то время как равенство «=» (когда используется как оператор Copyright (C) 2005. Все права защищены. Адрес электронной почты для контакта с автором: paulvink at users dot sourceforge dot net. Перевод на русский язык: Сергей Ковалёв. Copyright (C) 2006. Все права0 码力 | 15 页 | 288.08 KB | 1 年前3
MSSQL to Firebird RussianFirebird имеет поддержку оператора CASE. Оператор CASE используется аналогично оператору switch языка C или оператору case языка Pascal для замены одного значения на другое. Обычно в СУБД Firebird 1.0 эту языке C, драйвера ODBC (Open Database Connectivity), драйвера OLE DB (он также используется для доступа в технологии ActiveX Data Objects, ADO), и др. Использование низкоуровневого API на языке C позволяет есть поддержка этого API. Это также является базисом для компонент доступа сред разработки Delphi и C++ Builder, таких как InterBase Objects (IBO), FIBPlus, InterBase Express (IBX), UnifiedIB (UIB) и др0 码力 | 22 页 | 287.07 KB | 1 年前3
firebird language reference 30 rusошибок GDSCODE их описание, и SQLCODE ......................................................... 559 C. Зарезервированные и ключевые слова ............................................................... ор, которое позволяет вам внедрять SQL конструкции в ваш непосредственный язык программирования (C, C++, Pascal, Cobol и так далее) и производить обработку этих внедрённых конструкций в правильные вызовы letter>::= A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z ::= a | b | c | d | e | f | g | h | i | j | k | l 0 码力 | 719 页 | 3.98 MB | 1 年前3
PlantUML 1.2023.11 Справочное руководство по языкуUser -> A: DoWork activate A A -> B: << createRequest >> activate B B -> C: DoWork activate C C --> B: WorkDone destroy C B --> A: RequestCreated deactivate B A -> User: Done deactivate A @enduml синтаксис (X,color). @startuml participant "Famous Bob" as Bob << Generated >> participant Alice << (C,#ADD1B2) Testable >> Bob->Alice: First message @enduml По умолчанию, символ guillemet используется << Generated >> participant Alice << (C,#ADD1B2) Testable >> Bob->Alice: First message @enduml @startuml participant Bob << (C,#ADD1B2) >> participant Alice << (C,#ADD1B2) >> Bob->Alice: First message0 码力 | 554 页 | 7.96 MB | 1 年前3
PlantUML 1.2021.2 Справочное руководство по языку[QA-1765](https://forum.plantuml.net/1765/is-it-possible-to-have-different-shapes-for-notes?show=1806#c1806)]* 1.16 Note over all participants [across] You can directly make a note over all participants User -> A: DoWork activate A A -> B: << createRequest >> activate B B -> C: DoWork activate C C --> B: WorkDone destroy C Справочное руководство по языку PlantUML (1.2021.2) 18 / 387 1.24 Активация синтаксис (X,color). @startuml participant "Famous Bob" as Bob << Generated >> participant Alice << (C,#ADD1B2) Testable >> Bob->Alice: First message @enduml По умолчанию, символ guillemet используется0 码力 | 388 页 | 4.18 MB | 1 年前3
PlantUML 1.2021.1 Справочное руководство по языку[QA-1765](https://forum.plantuml.net/1765/is-it-possible-to-have-different-shapes-for-notes?show=1806#c1806)]* 1.16 Note over all participants [across] You can directly make a note over all participants User -> A: DoWork activate A A -> B: << createRequest >> activate B B -> C: DoWork activate C C --> B: WorkDone destroy C Справочное руководство по языку PlantUML (1.2021.1) 18 / 382 1.24 Активация синтаксис (X,color). @startuml participant "Famous Bob" as Bob << Generated >> participant Alice << (C,#ADD1B2) Testable >> Bob->Alice: First message @enduml По умолчанию, символ guillemet используется0 码力 | 383 页 | 4.13 MB | 1 年前3
PlantUML 1.2021.3 Справочное руководство по языку[QA-1765](https://forum.plantuml.net/1765/is-it-possible-to-have-different-shapes-for-notes?show=1806#c1806)]* 1.16 Note over all participants [across] You can directly make a note over all participants User -> A: DoWork activate A A -> B: << createRequest >> activate B B -> C: DoWork activate C C --> B: WorkDone destroy C Справочное руководство по языку PlantUML (1.2021.2) 18 / 405 1.24 Активация ДИАГРАММА ПОСЛЕДОВАТЕЛЬНОСТИ participant "Famous Bob" as Bob << Generated >> participant Alice << (C,#ADD1B2) Testable >> Bob->Alice: First message @enduml По умолчанию, символ guillemet используется0 码力 | 406 页 | 4.33 MB | 1 年前3
PlantUML 1.2020.23 Справочное руководство по языкуUser -> A: DoWork activate A A -> B: << createRequest >> activate B B -> C: DoWork activate C C --> B: WorkDone destroy C B --> A: RequestCreated deactivate B A -> User: Done deactivate A @enduml синтаксис (X,color). @startuml participant "Famous Bob" as Bob << Generated >> participant Alice << (C,#ADD1B2) Testable >> Bob->Alice: First message @enduml По умолчанию, символ guillemet используется << Generated >> participant Alice << (C,#ADD1B2) Testable >> Bob->Alice: First message @enduml @startuml participant Bob << (C,#ADD1B2) >> participant Alice << (C,#ADD1B2) >> Bob->Alice: First message0 码力 | 306 页 | 3.12 MB | 1 年前3
共 19 条
- 1
- 2













