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

Ну ладно. Скажу по другому. Насколько просто сделать свой бинарный

формат в Го и насколько сложно его сделать в CPP. При этом понимая что это не сломается?

26 ответов

12 просмотров

бинарный формат чего? просто хранения данных?

В go легко. Буквально 2 недели назад делал свой бинарный формат для специфического индекса, который генерируется заранее, а в сервере используется напрямую в бинарном виде через mmap. Примерно рабочая неделя потребовалась на придумывание формата, реализацию записи и чтения.

Mikhail Efimov
В go легко. Буквально 2 недели назад делал свой би...

Писали в структуру по полям (id int, lala byte, blabla bool) или хранили всё в []byte и методами (getID, getLala, getBlabla, парсили и выдергивали всё это из []byte) ?

Andrey Burov
Писали в структуру по полям (id int, lala byte, bl...

Без go-структур, древовидное описание с указателями относительно начала файла, поиск выполняется серией чтений отдельных байтиков и слов

Andrey Burov
круто!

Да, я порадовался интересной задачке) А то разрабатываю сервак в одно лицо, и потому в основном задачи довольно рутинные

Mikhail Efimov
Да, я порадовался интересной задачке) А то разраба...

есть такое, ну задача реально интересная, и огромное поле для оптимизаций

Vi- Автор вопроса
Mikhail Efimov
Да, я порадовался интересной задачке) А то разраба...

Да это проблема Go, язык классный, но скучноватый..порой.

Vi
Да это проблема Go, язык классный, но скучноватый....

да не язык скучный, а задачи типовые на нем решают

Vi
Да это проблема Go, язык классный, но скучноватый....

Мне кажется, в моем случае это скорее проблема команды. Нас мало, а технологий много. Поэтому я постоянно переключаюсь (ну хоть сейчас реже). На чем только на работе не пишу: Go, C, C++, python, PHP, Java, Dart, JS, shell, Delphi...

Vi- Автор вопроса
Andrey Burov
да не язык скучный, а задачи типовые на нем решают

в моем случае язык. Хочется как то повыпендриваться. КАк на РАсте или навертеть как на Lua. А выходит всегда приемлемо.

Vi
в моем случае язык. Хочется как то повыпендриватьс...

Он специально так сделан, чтобы выпендриваться было сложно)))

Vi- Автор вопроса
Andrey Burov
вам pet проект нужен!

У меня сейчас только и они. Но скучно на Go петы делать. Просто в один момент думаешь...е мае. Где экшен? все работает. Потом вспоминаешь боли из си. Где с массивом на 1 забылся. И такой ладно... Вечером на Lua поговнякаю.

Vi- Автор вопроса
Mikhail Efimov
Он специально так сделан, чтобы выпендриваться был...

Ну я условно. Вот например все тут про указатели и копирования размышляли. А мне все лень проверить насколько анонимные функции в go нормальны.

Vi- Автор вопроса
Mikhail Efimov
"Нормальны"?

Ну в некоторых языках анонимные функции это прям ад под капотом.

Andrey Burov
https://godbolt.org/ в помощь

А классная штука, спасибо. Проверил, что константные строки заранее собираются, так что "+" использовать эффективно. Недавно здесь обсуждали: https://godbolt.org/z/1Ms56bKWr

Mikhail Efimov
А классная штука, спасибо. Проверил, что константн...

тут быстрее за счет оптимизаций компилятора

Mikhail Efimov
А классная штука, спасибо. Проверил, что константн...

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

Mikhail Efimov
Не совсем тебя понял. Где "тут"?

https://godbolt.org/z/rds9rKoTv посмотри с go:noinline и без него

Andrey Burov
https://godbolt.org/z/rds9rKoTv посмотри с go:noin...

тут без noinline оно же копируется

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта