Евгений
Евгений
В питоновских объектах много указателей внутри
Ну тогда причем тут Bytes и способ хранения в python?
Denis
Ну тогда причем тут Bytes и способ хранения в python?
При том, что какие именно данные ты суешь в iostream?
Nikolay Markov
При том, что какие именно данные ты суешь в iostream?
я поэтому специально и написал, что пересылать при таком раскладе можно будет только сырые байты
Nikolay Markov
зато оно будет работать на порядки быстрее
Denis
Сырые байты и сейчас можно пересылать
Nikolay Markov
Сырые байты и сейчас можно пересылать
через 100 слоев ненужной абстракции, да
Nikolay Markov
либо же дергая руками системные вызовы из libc
Denis
Можно и без, шаред мемори есть
Nikolay Markov
ну такое
Denis
multiprocessing.shared_memory
Denis
Даже в си ходить не надо
Nikolay Markov
multiprocessing.shared_memory
но зачем, если мне нужна обычная потоковая обработка?
Nikolay Markov
я не хочу думать об аллокаторах в шаред мемори, за меня система уже рулит пайпами
Nikolay Markov
это дефолтный механизм, которому больше 40 лет
Denis
Ты и пайп можешь сейчас сделать
denis ⛅️
multiprocessing.shared_memory
туда же не все запулить можно не?
denis ⛅️
ну точнее
denis ⛅️
часть будет сериализоваться
Nikolay Markov
ну такое
Sasha
А разве в каких-то интерпретируемых языках нет сериализации и десериализации при создании процесса?
Nikolay Markov
а где мой синтаксический сахар? где поддержка этого режима в мультипроцессинге?
Denis
multiprocessing.Pipe
Nikolay Markov
А разве в каких-то интерпретируемых языках нет сериализации и десериализации при создании процесса?
я ничего не имею против того, что она есть по дефолту. Я против того, что нет никакого низкоуровневого опционального режима для ускорения
Nikolay Markov
multiprocessing.Pipe
не катит, как раз тут и есть тот самый гигантский оверхед
Nikolay Markov
дайте мне просто буфер и я буду в него writeinto()
Nikolay Markov
Там есть send_bytes
ну давай сравним его по производительности с  GNU Parallel?
Nikolay Markov
а тупо в dev/shm писать
кроссплатформенно?
denis ⛅️
)0
Denis
ну давай сравним его по производительности с  GNU Parallel?
Никогда не интересовался таким, можно сравнить
Nikolay Markov
Никогда не интересовался таким, можно сравнить
ну вот странно, что не интересовался. По дефолту в современном линуксе создание процесса и отправка ему байтов - очень дешевая и простая операция
Nikolay Markov
в винде чуть похитрее, но тоже не особо сложно
denis ⛅️
или только кусками из доков выцеплять информацию?
Nikolay Markov
или только кусками из доков выцеплять информацию?
ну, есть базовые системные вызовы же
Nikolay Markov
почитай про fork() и всякие execve() в сях
denis ⛅️
ну, есть базовые системные вызовы же
это все хорошо когда ты работаешь с си на линуксе
Nikolay Markov
это все хорошо когда ты работаешь с си на линуксе
чтобы дернуть системный вызов - необязательно писать на си
denis ⛅️
чтобы дернуть системный вызов - необязательно писать на си
ну я имею ввиду про всякие подводные камни
denis ⛅️
типа сериализации при передаче и тд
Nikolay Markov
типа сериализации при передаче и тд
сериализации при передаче по умолчанию никакой нет, это в питоне накрутили для твоего "удобства"
Nikolay Markov
там просто шлются через пайп сырые байты
Nikolay Markov
в питоне, в целом, круто сделали, но плохо, что нельзя просто так взять и на нижний уровень спуститься
Nikolay Markov
ну а как ты любой рандомный объект передашь без сериализации
а зачем мне передавать любые рандомные объекты? далеко не всегда это то, что требуется
Nikolay Markov
ну вот представь, что у тебя в форке запускается кроулер по урлам, ты шлешь туда строчками урлы
Nikolay Markov
как думаешь, что будет проще - послать туда тупо строку байтовую в utf-8 или захреначить string, обернутый в pyobject?
denis ⛅️
ну питон первое разве позволит?
Nikolay Markov
путем многабукаф и такой-то матери, может, и позволяет, но все равно с большим оверхедом
Nikolay Markov
я по этому поводу и возбухаю
denis ⛅️
+
denis ⛅️
взлом жопы
Sasha
я по этому поводу и возбухаю
А ты сями никогда не занимался?
Sasha
занимался
Заметно, шаришь
Sasha
А вставки на си можно прикрутить?
Можно написать свою либу на си с форком, но тут в контексте пайтона бомбежка
Anonymous
Это любой высокоуровневый
Sasha
Ну в джаве немного иначе, тоже высокоуровневый жеж
Anonymous
Ну и в си я асм вставки делала чтоб быстрее
Anonymous
Мало учила очень
Anonymous
Но подумываю освежить
Nikolay Markov
у меня вообще немного полыхает, что из питона нельзя просто так взять и вызвать системный вызов любой без трюков с ctypes/libc
Nikolay Markov
кстати, из го - можно абсолютное большинство 🙂
Anonymous
Хмм
Sasha
кстати, из го - можно абсолютное большинство 🙂
Тру стори, сам с го дружу. Другое дело, что я действительно не могу вспомнить ни одного интерпретируемого языка, где можно сделать системный вызов
Anonymous
кстати, из го - можно абсолютное большинство 🙂
Есть какой то онлайн курс годный по нему?
Anonymous
Ребята, подскажите. Несколько условий в if проверяются до первого, которое однозначно определит результат, или проверятся все? Есть несколько условий которые нужно проверить. Все условия междй собой относятся через or. Но некторые более ресурсоемки чем другие. Можно ли все записать в один if и быть уверенным что выражения будут вычисляться до первого True, или лучше все же написать цепочку if?
Nikolay Markov
Есть какой то онлайн курс годный по нему?
Я не проходил курсов по нему, но могу порекомендовать книжку Concurrency in Go, она отлично язык с сильной стороны рассматривает