Рубрика «GIL»
Мифы и легенды современного Python
2022-08-30 в 8:00, admin, рубрики: backend, fullstack, GIL, python, python3, Блог компании Evrone, ПрограммированиеДеградация программного обеспечения
2019-02-28 в 10:39, admin, рубрики: Apache, Firefox 3.6, GIL, nginx, open source, python, деградация программного обеспечения, Проектирование и рефакторинг, Управление продуктом, управление проектамиВ книге «Электромагнитная эпоха: работа, любовь и жизнь, когда роботы правят миром» Робин Хэнсон кратко обсуждает деградацию программ:
Программное обеспечение изначально было разработано для одного набора задач, инструментов и ситуаций. Но оно медленно изменяется, чтобы справиться с постоянным потоком новых задач, инструментов и ситуаций. Такой софт становится более сложным, хрупким, в него труднее вносить полезные изменения (Леман и Биледи, 1985)1. В конце концов, лучше начать всё сначала и написать с нуля новые подсистемы, а иногда и полностью новые системы.
Я уверен, что это правда. Как правило, грамотная адаптация программного обеспечения к новым условиям занимает больше времени и усилий, чем написание нового программного обеспечения с нуля. Программисты не любят признавать это, но доказательства очевидны. В проектах open source есть несколько известных примеров.
Читать полностью »
И еще раз о GIL в Python
2014-09-30 в 13:21, admin, рубрики: GIL, parallel programming, python, параллельное программированиеПредисловие
Область, в которой мне повезло работать, называется вычислительная электрофизиология сердца. Физиология сердечной деятельности определяется электрическими процессами, происходящими на уровне отдельных клеток миокарда. Эти электрические процессы создают электрическое поле, которое достаточно легко измерить. Более того оно очень неплохо описывается в рамках математических моделей электростатики. Тут и возникает уникальная возможность строго математически описать работу сердца, а значит — и усовершенствовать методы лечения многих сердечных заболеваний.
За время работы в этой области у меня накопился некоторый опыт использования различных вычислительных технологий. На некоторые вопросы, которые могут быть интересны не только мне, я постараюсь отвечать в рамках этой публикации.
Читать полностью »
Как работает GIL в Ruby. Часть 3. Делает ли GIL ваш код потоко-безопасным?
2014-07-23 в 8:26, admin, рубрики: GIL, ruby, многопоточное программирование, многопоточность, параллельное программирование, потоки
Переводы предыдущих двух частей:
Первая часть
Вторая часть
Это статья Jesse Storimer. Он выступает на семинаре Unix fu, онлайн классе для Ruby-разработчиков, которые хотят научиться удивительным хакам в Ruby и повысить свой уровень в разработке серверного стека. Количество участников ограничено, так что поторопитесь, пока есть свободные места. Так же, он является автором книг «Работа с Unix процессами», «Работа с TCP сокетами» и «Работа с потоками в Ruby».
В Ruby-сообществе существуют некоторые заблуждения относительно GIL в MRI-реализации интерпретатора. Если вы хотите узнать ответ на главный вопрос этой статьи, без ее прочтения, то вот он: GIL не делает ваш код на Ruby потоко-безопасным.
Но вы не должны принимать мои слова на веру.
Читать полностью »
Python на Хабре
2013-12-18 в 6:12, admin, рубрики: django, GIL, pygtk, pyqt4, python, python3, tkinter, tornado, twisted, wxpython, декораторы, обучение, Программирование, метки: Django, GIL, pygtk, pyqt4, python, python3, tkinter, tornado, twisted, wxpython, декораторы, обучение Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше?
Читать полностью »
Python Meetup: ноябрьская встреча
2013-12-17 в 12:38, admin, рубрики: celery, gevent, GIL, jetbrains, meetup, python, wargaming.net, Блог компании Wargaming.net, минск, Программирование, метки: celery, gevent, GIL, jetbrains, meetup, python, wargaming.net, минск
В конце ноября в Минске прошла очередная встреча Python Meetup. Четыре интереснейших доклада на около-python-овские темы, авторитетные спикеры. Кстати, впервые к нам приехал спикер не из Беларуси — это был Андрей Власовский, опытный докладчик из компании JetBrains.
В ноябрьском митапе мы рассмотрели опциональную типизацию в Python, асинхронное распределенное выполнение задач, введение в GIL и новый GIL, а также использование gevent для эмуляции высокой нагрузки.
Видео всех докладов, как и ссылки на презентации, можно найти под катом.
Читать полностью »
Как работает GIL в Ruby. Часть 2
2013-08-20 в 6:54, admin, рубрики: GIL, jruby, rubinius, ruby, многопоточность, параллельное программирование, ПрограммированиеВ прошлый раз я предложил заглянуть в код MRI, чтобы разобраться с реализацией GIL и ответить на оставшиеся вопросы. Что мы сегодня и сделаем.
Черновая версия этой статьи изобиловала кусками кода на C, однако, из-за этого суть терялась в деталях. В финальной версии почти нет кода, а для любителей поковыряться в исходниках я оставил ссылки на функции, которые упоминал.
В предыдущей серии
После первой части остались два вопроса:
- Делает ли GIL
array << nil
атомарной операцией? - Делает ли GIL код на Ruby потокобезопасным?
На первый вопрос можно ответив, взглянув на реализацию, поэтому начнем с него.
Читать полностью »
Как работает GIL в Ruby. Часть 1
2013-08-19 в 8:25, admin, рубрики: GIL, jruby, rubinius, ruby, многопоточность, параллельное программирование, ПрограммированиеПять из четырех разработчиков признают, что многопоточное программирование понять непросто.
Большую часть времени, что я провел в Ruby-сообществе, печально известная GIL оставалась для меня темной лошадкой. В этой статье я расскажу о том, как наконец познакомился с GIL поближе.
Первое, что я услышал о GIL, никак не было связано с тем, как она работает или для чего нужна. Все, что я услышал — что GIL — это плохо, поскольку ограничивает параллелизм, или то, что это хорошо, потому что делает код потокобезопасным. Пришло время, я приноровился к многопоточному программированию и понял, что на самом деле все сложнее.
Я хотел знать, как работает GIL с технической точки зрения. На GIL нет ни спецификации, ни документации. По сути, это особенность MRI (Matz's Ruby Implementation). Команда разработчиков MRI ничего не говорит по поводу того, как GIL работает и что гарантирует.
Впрочем, я забегаю вперед.
Читать полностью »