Size: a a a

Язык программирования Julia / Julia programming language

2020 May 28

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
у меня просто программы наверное не такие сложные )
источник

A

Arthur in Язык программирования Julia / Julia programming language
motique
а дебаггер ручками?
Он может удобнее, чем пользование джуно
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
я дебаггером не пользуюсь почти
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
На самом деле использование дебаггера это всего лишь стиль программирования.

Если разбивать программу на маленькие функции, то получается, что дебажить и не надо практически. Тестами покрываешь логику, отдельные маленькие функции можно проверять с помощью логов.
источник

m

motique in Язык программирования Julia / Julia programming language
ну для простых юзкейсов можно хоть notepad.exe юзать
источник

A

Arthur in Язык программирования Julia / Julia programming language
Андрей Оськин
На самом деле использование дебаггера это всего лишь стиль программирования.

Если разбивать программу на маленькие функции, то получается, что дебажить и не надо практически. Тестами покрываешь логику, отдельные маленькие функции можно проверять с помощью логов.
Очень хороший стиль разработки) но иметь возможность продебажить иногда необходимо, если, например, баг из-за изменений в 1е-15, порождаемый разным результатом суммирования массивов (один сортированный, другой нет)
источник

A

Arthur in Язык программирования Julia / Julia programming language
Не представляю как такое эффективно находить, если система на проде упала, без дебаггера
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Хм.
Я не буду спорить, потому что сам с таким не сталкивался.

Поэтому рассуждения мимопроходящего 😊
1. На проде всё должно быть обложено логами, и разборы полётов по ним происходят в любом случае. Не думаю, что возможно дебажить прод (или я не так понял фразу).
2. Если изменения в 1e-15 из-за изменения порядка суммирования валят программу, то это очень опасно и стоит размышлений, потому что (опять же со стороны, может быть специфика задачи) выглядит, что алгоритм численно нестабилен, а значит мест где он будет валиться намного больше. Ну и конечно, такая штука не паралелится ни разу, потому что в паралелях с порядком совсем тяжело и это ещё один повод задуматься над алгоритмом.
источник

PY

Popov Yuri in Язык программирования Julia / Julia programming language
Arthur
А неймспейсы?)
токо о своем наболевшем.  мнеб еще асинхронные процедуры туда и сопроцедуру (корутины)
источник

A

Arthur in Язык программирования Julia / Julia programming language
Андрей Оськин
Хм.
Я не буду спорить, потому что сам с таким не сталкивался.

Поэтому рассуждения мимопроходящего 😊
1. На проде всё должно быть обложено логами, и разборы полётов по ним происходят в любом случае. Не думаю, что возможно дебажить прод (или я не так понял фразу).
2. Если изменения в 1e-15 из-за изменения порядка суммирования валят программу, то это очень опасно и стоит размышлений, потому что (опять же со стороны, может быть специфика задачи) выглядит, что алгоритм численно нестабилен, а значит мест где он будет валиться намного больше. Ну и конечно, такая штука не паралелится ни разу, потому что в паралелях с порядком совсем тяжело и это ещё один повод задуматься над алгоритмом.
Привнесу контекст. Время на нахождение ошибки ~1-2 часа. Ошибка происходит из-за накопленного эффекта поведения многих функций. Сама ошибка внутри hot loop, если логгировать все, то логов будет несколько ГБ. Дебаг кода с входными данными с прода самый быстрый вариант из тех, что я знаю (
источник

A

Arthur in Язык программирования Julia / Julia programming language
Алгоритм в некоторых случаях нестабилен, да. Но стабильные алгоритмы не дают результат, к сожалению, специфика задачи противная
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
несколько ГБ логов - норм, особенно если писать их в бинарные таблицы со сжатием, а не тупо текстом, и уметь читать их кусочками из нужного места :)
источник

A

Arthur in Язык программирования Julia / Julia programming language
А как потом искать место, где упало?)
источник

A

Arthur in Язык программирования Julia / Julia programming language
И из-за чего
источник

A

Arthur in Язык программирования Julia / Julia programming language
Конкретно в моем случае пришлось бы дампить сами массивы данных
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
я так и делаю :) но у меня timeseries молотятся сложными цепочками алгоритмов
источник

A

Arthur in Язык программирования Julia / Julia programming language
А примерный порядок размеров массивов?
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
ну скажем 10 массивов по 20e6 точек, которые по ходу анализа могут сжиматься в прореженные массивы
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
но без отладчика действительно не посмотреть, почему в конкретном месте -1 вместо 1
источник

PY

Popov Yuri in Язык программирования Julia / Julia programming language
timeseries это круто особенно с тактовой мгц 250
источник