Какой бы технологией виртуализации я ни пользовался
Помните времена, когда системы с более чем 512 МБ ОЗУ считались самым передовым? Я провожу свои дни за написанием кода для предыдущего.
Я работаю в основном над программами низкого уровня, которые выполняются в привилегированном домене в среде Xen. Наш предел для привилегированного домена составляет 512 МБ, оставляя оставшуюся часть ОЗУ свободной для использования нашими клиентами. Для нас также характерно ограничение привилегированного домена только одним ядром процессора.
Итак, я пишу код, который будет работать на новом сервере стоимостью 6 тыс. Долл., И каждая программа должна работать (в идеале) в пределах выделенного потолка в 100 Кб или полностью отказаться от динамического выделения памяти.
Вкратце, я оптимизирую для:
- След памяти
- Сортировки (где большая часть моего кода тратит большую часть своего времени)
Я также должен быть чрезвычайно прилежным, когда речь идет о времени, потраченном на ожидание блокировок, ожидание ввода-вывода или просто ожидание в целом. Значительное количество моего времени уходит на улучшение существующих неблокирующих библиотек сокетов и поиск более практичных методов программирования без блокировок.
Каждый день я нахожу немного ироничным, что я пишу код точно так же, как 15 лет назад, для систем, которые были куплены в прошлом месяце из-за технологических достижений .
Это характерно и для тех, кто работает на встроенных платформах, хотя даже многие из них имеют в своем распоряжении как минимум 1 ГБ. Как отмечает Джейсон, это также типично при написании программ для запуска на мобильных устройствах. Список можно продолжить, киоски, тонкие клиенты, рамки для фотографий и т.д ..
Я начинаю думать, что аппаратные ограничения действительно отделяют программистов от людей, которые могут заставить что-то работать, не заботясь о том, что оно потребляет. Я беспокоюсь (если хотите, проголосуйте за меня), какие языки полностью абстрагируют проверку типов и памяти от общего пула здравого смысла, который (раньше) использовался программистами различных дисциплин.