Size: a a a

2020 June 24

A🍊

Andrey 🍊 in rannts
Alexander Zelenyak
Может ли головоломка быть развлекаловом?   🙂
Я, возможно, не так выразился: «безмозглым развлекаловом» быть не может :)
источник

AZ

Alexander Zelenyak in rannts
Сейчас на более активные игры переключился, раз самоизоляция и настоящей активности нельзя.
источник

SA

Sergey Arkhipov in rannts
Fred
Elixir не даром придумали, значит у erlang есть какие-то проблемы, вообще все равно там компиляция в erlang идёт.
Нет там особенных проблем. Просто хотелось построить свой язык поверх BeamVM. Типа мощь Эрланга с более-менее привычным синтаксисом.

Компиляция идет в beam-байткод, не в исходники Эрланга. Это как Clojure, Scala компилируются сразу в байткод, то же самое
источник

AZ

Alexander Zelenyak in rannts
Сезон, блин, только в прошлую субботу открыл. Боль...
источник

F

Fred in rannts
Sergey Arkhipov
Нет там особенных проблем. Просто хотелось построить свой язык поверх BeamVM. Типа мощь Эрланга с более-менее привычным синтаксисом.

Компиляция идет в beam-байткод, не в исходники Эрланга. Это как Clojure, Scala компилируются сразу в байткод, то же самое
да это понятно что там руби совместили с мощью erlanga что-бы глаза не вытекали от кода 86 года..
источник

F

Fred in rannts
это единственное что я знаю, хотелось красоты, и не хотелось особо смотреть на тот код который в erlang есть
источник

SZ

Sergey Z in rannts
не вытекают, очень читаемый код, сильно легче читаемый чем произвольные исходники на питоне
источник

F

Fred in rannts
мне сложней читать
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Roman Bolkhovitin
А вы когда-нибудь сталкивались с немифическим оверхедом от докера? Я тут столкнулся и не очень понимаю как с этим жить. Есть метод, который ничего сверхестественного не делает, просто делит циферку на циферку в цикле, и на хосте работает за 0,025, а в контейнере за 0.3 с.

Я нагуглил про seccomp профили, отключил их и вуаля - теперь работает одинаково. Только что делать с этим счастьем непонятно. Отключать совсем вроде как некошерно, а для того чтобы понять какой конкретно сискол мне нужен и написать тонкий профиль я не очень умный... Сам код вроде некуда упрощать, и так простой.

https://medium.com/better-programming/faster-python-in-docker-d1a71a9b9917
https://docs.docker.com/engine/security/seccomp/
https://habr.com/ru/company/selectel/blog/322046/
Почитал "медиум" и "хабр" и не совсем понимаю почему это замедляет выполнение программ? Как я понял, если какой-то системный вызов запрещён, то приложение скорее будет убито при попытке его использовать, нежели будет тормозить.
Или тут аффектит в принципе наличие какой-то прослойки от seccomp между приложением и ядром, которая при каждой попытке приложения дёрнуть ядро проверяет допустимость такого вызова? И следовательно бесполезно пытаться частично "отключить" seccomp в контейнере. Т.е. разрешить какие-то сисколы из тех 44, что по дефолту запрещены докером. Т.к. всё равно прослойка останется и будет проверять все сисколы и тем самым "тормозить". Только полное отключение seccomp уберёт прослойку и не будет влиять на производительность.
источник

SZ

Sergey Z in rannts
Fred
мне сложней читать
может дело привычки, конечно, и привыкшему читать что угодно на питоне, не будут понятны страдания из-за избыточного синтаксиса.
источник

F

Fred in rannts
Sergey Z
может дело привычки, конечно, и привыкшему читать что угодно на питоне, не будут понятны страдания из-за избыточного синтаксиса.
нет, я просто так не осилил стартовый гайд по elang, по Elixir осилил, но там есть свои приколы с которыми тяжко мириться после обычных C подобных языков.
источник

SZ

Sergey Z in rannts
осиливание стартового гайда это такая себе метрика, может было просто не интересно и не нужно, а у элексира название понравилось. человек - трудный зверь.
источник

F

Fred in rannts
да, не название, а возможности.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Roman Bolkhovitin
я попробую набросать, но не факт что это так просто получится сделать - в проекте твистед, и все что можно обмазано inlineCallbacks, даже там где нет никакого ввода-вывода. Подозреваю что мои предшественники исповедовали карго-культ 😊

но в статье на медиуме есть ссылка на репку
В примере кода с medium-а вообще не очевидно какие такие сисколы будет делать питон внутри цикла. Там же только чтение из списков по индексу элемента и математика. Ничто из этого не требует обращения я ядру. Вот если бы внутри цикла постоянно выделялась память под весомые объёмы данных. Но ведь нет, там такого не видно.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Может есть какие-то инструменты, с помощью которых можно отслеживать сисколы на заданном участке программы, и таким образом увидеть дёргает ли питон ядро внутри цикла и что именно дёргает. Это можно использовать для оптимизации, уменьшив число операций которые приводят к сисколам.
источник

A🌚

Al 🌚l in rannts
Kirill (Cykooz) Kuzminykh
Может есть какие-то инструменты, с помощью которых можно отслеживать сисколы на заданном участке программы, и таким образом увидеть дёргает ли питон ядро внутри цикла и что именно дёргает. Это можно использовать для оптимизации, уменьшив число операций которые приводят к сисколам.
А ты не можешь просто strace’ом собрать вызовы без докера и найти запрещённые сисколлы?
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Я не думаю что там есть запрещённые сисколы. От их вызова приложение киляется, а не тормозит
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Roman Bolkhovitin
А вы когда-нибудь сталкивались с немифическим оверхедом от докера? Я тут столкнулся и не очень понимаю как с этим жить. Есть метод, который ничего сверхестественного не делает, просто делит циферку на циферку в цикле, и на хосте работает за 0,025, а в контейнере за 0.3 с.

Я нагуглил про seccomp профили, отключил их и вуаля - теперь работает одинаково. Только что делать с этим счастьем непонятно. Отключать совсем вроде как некошерно, а для того чтобы понять какой конкретно сискол мне нужен и написать тонкий профиль я не очень умный... Сам код вроде некуда упрощать, и так простой.

https://medium.com/better-programming/faster-python-in-docker-d1a71a9b9917
https://docs.docker.com/engine/security/seccomp/
https://habr.com/ru/company/selectel/blog/322046/
А у тебя какой дистриб линукса внутри контейнера?
источник

RB

Roman Bolkhovitin in rannts
Дебиан, обычный слим образ питонячий
источник

A🌚

Al 🌚l in rannts
Kirill (Cykooz) Kuzminykh
Я не думаю что там есть запрещённые сисколы. От их вызова приложение киляется, а не тормозит
Видимо просто bpf на каждый системный вызов проверяет входит ли он в запрещённые 44 вызова и отседова и лезет оверхэд
источник