Asyncio и конкурентное программирование на Python Год издания: 2022 Автор: Фаулер Мэттью Переводчик: Слинкин А. А. Издательство: ДМК Пресс ISBN: 978-5-93700-166-5 Язык: Русский Формат: PDF Качество: Издательский макет или текст (eBook) Интерактивное оглавление: Да Количество страниц: 398 Описание: Из данной книги вы узнаете, как работает библиотека asyncio,
как написать первое реальное приложение и как использовать функции веб-API
для для повышения производительности, пропускной способности и отзывчивости
приложений на языке Python. Рассматривается широкий круг вопросов: от модели
однопоточной конкурентности до многопроцессорной обработки.
Издание будет полезно не только Python-разработчикам, но и всем программистам,
которые хотят лучше понимать общие проблемы конкурентности.
Примеры страниц
Оглавление
1 Первое знакомство с asyncio................................................................................. 21
2 Основы asyncio....................................................................................................... 45
3 Первое приложение asyncio................................................................................ 74
4 Конкурентные веб-запросы..................................................................................101
5 Неблокирующие драйверы баз данных...............................................................130
6 Счетные задачи.....................................................................................................157
7 Решение проблем блокирования с помощью потоков........................................189
8 Потоки данных......................................................................................................223
9 Веб-приложения...................................................................................................251
10 Микросервисы.......................................................................................................279
11 Синхронизация.....................................................................................................303
12 Асинхронные очереди.........................................................................................327
13 Управление подпроцессами...............................................................................350
14 Продвинутое использование asyncio.................................................................365
Перевод ужасен.
Я нашёл в сети оригинальный вариант, если кто захочет выложить - пишите в личку. Мне просто лень возиться с оформлением. Но сама книжка весьма хороша по содержанию.
84732595Перевод ужасен.
Я нашёл в сети оригинальный вариант, если кто захочет выложить - пишите в личку. Мне просто лень возиться с оформлением. Но сама книжка весьма хороша по содержанию.
Оригинал тут https:////
Может, всё-таки кто-нибудь сделает раздачу?
mikeVortex писал(а):
Странно, Слинкин — опытный переводчик, с опытом в несколько десятилетий..
Просто для сравнения.
В переводе:
Цитата:
Что такое ограниченность производительностью ввода-вывода и ограниченность быстродействием процессора
В оригинале:
Цитата:
What is I/O-bound and what is CPU-bound?
"coroutines" - "сопрограммы", и далее в том же духе.
И просто представьте, что человек, начитавшийся таким вот "ограниченность производительности", пойдёт читать дальнейшие материалы на английском. А куда деваться-то? И что он там поймёт?
Не, в принципе, конечно можно составить себе отдельный словарик для терминов, но этот перевод - отдельная очень большая нагрузка для мозга. Ещё туда же:
Цитата:
2.7.1 Выполнение счетного кода
Вы знаете, что такое "счётный код"? Я - нет, ни раз не сталкивался. А это, оказывается, опять
Где вы видите околесицу в оригинале? CPU-bound, если по-простому - упёрлись в CPU. "Ограниченность" обратно на английский может быть переведено по разному, а главное - по-русски так никто не говорит. Говорят о "тяжёлом" для процессоре коде, о "загружающем", "нагружающем" процессор коде.
Поэтому обязательно нужен "мостик" к английскому термину. Обязательно - рядом в скобочках.
Здесь в общем-то написано про выполнение кода, который должен вызывать состояние, которое определено термином CPU-bound. Иными словами, выполняется код, который процессор не может выполнить.
Понятно, что скорее всего подразумевались ситуации, когда у процессора не хватает производительности, чтобы выполнить код. Но ведь можно было именно это и написать. Ничего удивительного, что переводчик запутался.
Здесь в общем-то написано про выполнение кода, который должен вызывать состояние, которое определено термином CPU-bound. Иными словами, выполняется код, который процессор не может выполнить.
Понятно, что скорее всего подразумевались ситуации, когда у процессора не хватает производительности, чтобы выполнить код. Но ведь можно было именно это и написать. Ничего удивительного, что переводчик запутался.
Глупость вы какую-то пишете. Bound - граница, ограничение. CPU-bound code - код, который ограничен процессором. Именно процессором, а не чем-то другим. Всё. Никакого "состояния".
Ладно, давайте не будем спорить, каждому своё.
Вообще-то это вы не до конца понимаете.
Сказать, что код ограничен процессором без уточнения - это вообще ничего не сказать, почти бессмысленно по содержанию. Код может ограничиваться процессором в целой куче случаев. Например, вы ни за что не выполните машинный код, который работает на Core 2 Duo, на Z80. Или у процессора математического сопроцессора нет. Или процессору может не хватать каких-то SSE инструкций. Или производительности. Или это 64-х битный код (на 32-х битном процессоре). Или еще чего.
Вот CPU-bound - это термин, который определяет рамки производительности CPU. А нехватка производительности у процессора - это именно состояние процессора, к которому приводит выполнение определенного кода, когда он перестает справляться с задачей.
Соответственно, когда написано " Running CPU-bound code", мне невольно представляется человек, который запустил код, зная, что процессор его не сможет выполнить. И выражение недоумения на его лице, когда это произошло.
84788296Ivan-Tsarevitch, кому-то знания, а кому-то говном метания.
Вы о чем?
Вот как раз о том, что вы ищите изъяны, а не знания. В книге достаточно ясно рассказано, что есть два вида задач связанных с производительностью. Вычислительные и ввода/вывода данных.
Для решения первой задачи (в python) лучше использовать процессы (сервисы Windows) и потоки.
Для решения второй задачи (в python) используется асинхронный цикл событий ввода вывода и потоки.
Так же рассказано в книге о проблемах работы python с потоками.
Отсюда на многоядерном сервере для расчетных задач лучше использовать легкие процессы, а для ввода и вывода - событийный цикл. А потоки используются как нечто упрощающее организацию взаимодействия, например ввод/вывод при работе с файлами.
Вот как раз о том, что вы ищите изъяны, а не знания. В книге достаточно ясно рассказано, что есть два вида задач связанных с производительностью. Вычислительные и ввода/вывода данных.
То есть, вы услышали звон, но не поняли о чем он. Очень здорово, всегда нужно быть справедливым ... даже, если не понимаешь о чем вообще была речь. Так поступают все настоящие герои. P.S. Да, и я никого не оскорблял в этой теме, поэтому про говнометание вообще бред.
Ivan-Tsarevitch, где я сказал что-то о говнометании? Всего лишь констатировал, что придирки к переводу пустые. Составьте словарь правильного перевода и потом уже митингуйте.