Alexander
но опять же, даже при наличии всего этого, си макроассемблером не назовешь, потому что компилятор оптимизирующий и предсказать один в один что будет ты не можешь
Сергей
Так и ассемблер абстракция над машинными кодами, которые в свою очередь абстракция над электрическими сигналами на выходе оперативки
Нет, ассемблер, это это только названия над машинными командами. Макросы да, уже абстракция, а сам ассемблер только имена команд. Вот си, это уже прям следующий уровень абстракции, под которым вообще не видно команд процессора
Сергей
Я к тому, что низкоуровневость скорее субъективное понятие. Для меня си низкоуровневый
На низком уровне нет типов данных, а в си есть. Все конструкции си не отражают команды ассемблера один к одному, а в ассемблере наоборот.
Игорь
Может кто объяснить, почему последняя цифра в ответе - 8?
Emil
А стойте
Emil
А ну --
Игорь
Emil
Сохранился с прошлого с-- кейса видимо
Игорь
а что это за команда -- ?
Emil
Декремент уменьшает значение на единицу
Emil
Игорь
Декремент уменьшает значение на единицу
Окей, тогда почему тут у меня не сработал?
Emil
Окей, тогда почему тут у меня не сработал?
Потому что не как в плюсах, декремент сам по себе не значение, а операция, что-то в таком духе, нельзя принтить сразу так
Olga
Всем привет. Размещают ли у вас вакансии?
Max
поставил 1.17 и хотел использовать в VSCODE получил след ошибку, вроде нечего лишнего не делал (ну единственно выбрал на стандратную папку для установки).
Игорь
Коллеги, чё она не срабатывает?
Emil
В плюсах во все стороны работает (и считается значением), разница в том, когда происходит само изменение. Есть ещё приколы на всякие i++ + ++i из-за недоговоренности порядка действий (Я так давно не писал на плюсах, что ответственность за информацию не беру)
Emil
Коллеги, чё она не срабатывает?
Консоль подсказывает, вместо сравнения(==) присваивание(=)
Olga
спасибо
𝕌ℕ𝔼𝕏ℙ𝔼ℂ𝕋𝔼𝔻
Сергей
Дискриминация по рассовому признаку 🤣
𝕌ℕ𝔼𝕏ℙ𝔼ℂ𝕋𝔼𝔻
whois
Друзья, скажите пожалуйста, кто-нибудь пробовал go1.8beta1. Там вроде дженерики должны быть? Но почему-то у меня они не работают)
whois
Alexander
может как с модулями что-то из env должно стоять?
whois
может как с модулями что-то из env должно стоять?
Не думаю, тут примитивный код. Чисто хочу пощупать дженерики
der ðiβüśüɾę
Со стороны кода
der ðiβüśüɾę
Кстати, какая ос?
Herman
https://gotipplay.golang.org/
whois
Кстати, какая ос?
Ось не имеет значения, т.к. код запускаю в контейнере.
whois
Кстати, какая ос?
docker run --rm -ti -v $PWD:/app -w /app golang:1.8beta1 bash
Herman
не знаете, зачем можно пытаться делать return &*result ?
whois
не знаете, зачем можно пытаться делать return &*result ?
Прикольно. Даже в голову не приходило)\
Alexander
Скорее всего возвращаемый тип был значением, потом стал указателем, и автор немного мудак, а также не пользуется линтерами
Emil
Мб в системе и новая версия, а голанд в параметрах проекта не поменял? У меня с пиратским такие проблемы с каждым обновлением)
Herman
Скорее всего возвращаемый тип был значением, потом стал указателем, и автор немного мудак, а также не пользуется линтерами
я мыслил более позитивно, может в каком си или еще где это работает как-то иначе, чем в го?
Maks
Вообще если честно я уже не понимаю зачем нужны тут эти джинерики)
Maks
Разве что сделать контейнер какой нить удобный
Alexander
Много зачем
Bagasl
странно.
загугли сорс код новых пакетов для работы со слайсами и мапами на дженериках
Bagasl
там прям отличные примеры использования
der ðiβüśüɾę
linux debian
Ты точно го правильно скачал ( новый )? Потому что в репах деба всё ооооочень старое
der ðiβüśüɾę
Как говно мамонта
der ðiβüśüɾę
)
Maks
он же не качал, у него просто композ файл
Maks
или просто образ я хз
Maks
докера
der ðiβüśüɾę
А ну хз
Konstantin
Всем привет! Как наиболее эффективно парсить данные из файла csv с помощью Go в бд? Использую кликхаус, но старый метод может записывать 1.5 гигабайт до 30 минут. Какая скорость считается нормальной для такого объема данных?
Alexander
1 минута топ
Alexander
но все от задачи зависит
Konstantin
но все от задачи зависит
Спарсить сырые данные, проверок при парсе делать не нужно
Konstantin
Сейчас используется данная библиотека github.com/ClickHouse/clickhouse-go Может есть библиотеки получше?
Alexander
как можно вставлять 1.5гб данных в кликхаус 30 минут? по одной записи?
Konstantin
Точнее методы записи
Konstantin
как можно вставлять 1.5гб данных в кликхаус 30 минут? по одной записи?
Писал данный код не я, но на меня переложили данный микросервис)
Konstantin
Насколько вижу, там разбитие на чанки по 1 миллиону строк Сначала строится запрос на инсерт, дальше идет транзакция на инсерт transaction.Prepare(query)
Konstantin
transaction.Commit()
Alexander
эта либа работает так, что ты создаешь транзакцию, готовишь стейтмент, прогоняешь через него все записи, коммитишь транзакцию
Alexander
так и должно быть
Konstantin
Видимо проблемы с построение самого запроса, наверное он и занимает слишком много времени
Alexander
pprof
Alexander
еще вставка быстрее работает, если данные уже отсортированы по ключу сортировки
Konstantin
pprof
А есть асинхронные методы записи?
Konstantin
Подскажите что можно про это почитать
Alexander
А есть асинхронные методы записи?
это непонимание go как языка и смысла асинхронности как таковой
Alexander
лучшее, что ты можешь сделать это читать в одной горутине, передавать по каналу в другую, которая будет писать. по смыслу то же, что и асинхронность получится
Alexander
но опять же проблему это не решит. надо профилировать (pprof) и уже потом прибегать к подобным ухищрениям, когда корневая проблема (видимо медленный парсинг) будет решена
Konstantin
лучшее, что ты можешь сделать это читать в одной горутине, передавать по каналу в другую, которая будет писать. по смыслу то же, что и асинхронность получится
Немного неправильно задал вопрос Есть блок, который строит сам запрос, он делает это синхронно, по одной строке Порядок записи данных совсем не важен Можно как-то строить запрос в нескольких горутинах и по окончанию просто отправлять на инсерт?
Alexander
у тебя сам sql долго строится? не понимаю что ты называешь построением запроса