Послушайте мою историю. Не знаю, есть ли у неё мораль.
Давным давно в 2018 году начал опенсурс-проект на Python (по необходимости) — полу-middleware, обрабатывающий картинки. Долго ли коротко кодил-бродил. Даже нашел себе помощников. И вот, когда всё уже было почти наверняка готово, пришла пора заняться оптимизацией.
Поднял я первую виртуальную машину для краш-теста на TinyCoreLinux. 256 мегабайтов ей выделил. 120 мегабайтов отъела система. Не годился TinyCore для имитации настоящего low-end-девайса.
Поднял я вторую виртуальную машину с FreeBSD с шестьюдесятью четырьмя мегабайтами памяти и призадумался. Сколько же памяти надобно интерпретатору. Ведь помнил, на тридцати двух мегабайтах работали и StarCraft, и Fallout 2, и Half-Life. И стал отрезать я лишнее от скрипта, пока не остался совсем пустой файл.
Запустил я /usr/bin/time -v python пустой_файл.py
и увидел 25800 kbytes maximum resident set size. Закинул несколько базовых необходимых мне импортов, включая Pillow, и стало 57 мегабайт. «Негоже мидлвару есть так много, даже еще ничего не делая», — подумал я и пошёл переписывать на Rust.
еще не дед (меньше сорока)