Pull to refresh

Comments 11

Эталонная реализация Python называется CPython. Она написана на языке C. Когда я впервые об этом услышал, это буквально выбило меня из колеи. Язык программирования, который написан на другом языке?

Прям интересно стало, на чем пишуться языки программирования, по мнению автора? :)))
структура похожа на класс, у которого есть атрибуты, но нет методов.

А я всегда считал, что это класс похож на структуру с методами :)
Только хардкор, только bootstrapping. :)

После прочтения первой цитаты я вообще упал в осадок. На чем чем тогда языки пишут, на слове б-жьем?

Как-то совершенно упущен момент с циклическими ссылками, из-за чего многие считают, что в Питоне нет сборщика мусора.
Да, про циклические ссылки было бы интересно. Да и не только про них. Например, как происходит рост объектов? Например, создали пустой список и добавляем объекты, его размер растет, что происходит? Какой размер пулов, арен? Он фиксированный или нет? Если нет — как определяется?
В таблице максимальный размер объекта 512 байт. А если я создаю объект размером, например, пару сотен мегабайт, как он размещается?
UFO just landed and posted this here

Что-то у них там в примерах объемы не большие совсем. Большие — это когда никакой памяти не хватит для загрузки всех данных и выполнения операций над ними, и никакие оптимизации типов на уровне pandas не помогут. Мне приходится работать с csv файлами, в которых до 100 миллионов строк (и это далеко не самые большие данные). Но даже на этих данных pandas "умирает", вернее потребляет сотни гигабайт оперативной памяти (на сервере несколько сотен гагабайт ОЗУ, но и этого не хватает). В таких случаях приходится использовать либо chunksize в read_csv, когда возможно обрабатывать данные кусками, либо использовать dask, но он ещё совсем сырой.

UFO just landed and posted this here
Я что-то не разобрался, информация о свободных блоках хранится в однонаправленных списках, то есть, чтобы хранить информацию о свободных 4-байтовых блоках используется список из 8-байтового указателя?

Или там что-то вроде, того, что пул хранит номер первого ни разу не использованного блока (и все блоки после него тоже неиспользованны), и номер первого освобождённого, а в нём, уже номер следующего и соответственно при записи в блок мы читаем номер первого освобождённого, из него номер следующего, меняем номер в метаданных, и только потом записываем данные?
Както из названия статьи ожидалось увидеть способы управления памятью- например если начать пополнять список то на 100+ миллионной итерации выскакивает мемори еррор — при этом монитор ресурсов показывает что процесс сожрал всего то 500+ мегабайт памяти и ее еще много свободной… хотелось бы уметь делать настройки для того чтобы питон мог оперировать большим количеством памяти… даже в пхп есть соответствующая настройка, позволяющая задать максимальный объем памяти, доступный экземпляру скрипта при выполнении…
Sign up to leave a comment.