Яку б технологію віртуалізації я не використовував
Пам’ятаєте дні, коли системи, що мають більше 512 Мбайт оперативної пам’яті, вважалися кров’ю, що кровоточить? Я провожу свої дні, пишучи код за попередніми.
Я працюю здебільшого над програмами низького рівня, які працюють у привілейованому домені в середовищі Xen. Наша стеля для пільгового домену становить 512 Мб, а решта оперативної пам’яті залишається безкоштовною для використання нашими клієнтами. Для нас також характерно обмеження привілейованого домену лише одним ядром процесора.
Отже, ось я пишу код, який працюватиме на абсолютно новому 6-доларовому сервері, і кожна програма повинна працювати (в ідеалі) у межах виділеної стелі на 100 Кбіт або повністю уникнути динамічного розподілу пам'яті.
Точно, я оптимізую для:
- Слід пам'яті
- Сорти (де більша частина часу проводить мій код)
Я також повинен бути надзвичайно старанним, коли йдеться про час, витрачений на очікування замків, очікування вводу / виводу або просто очікування взагалі. Значна частина мого часу приділяється вдосконаленню існуючих бібліотек сокетів, що не блокують, та вивченню більш практичних методів програмування без блокування.
Кожного дня мені здається трохи іронічним, що я пишу код так само, як це робили 15 років тому, у системах, які були придбані минулого місяця, завдяки прогресу в технології.
Це характерно і для тих, хто працює на вбудованих платформах, хоча навіть багато хто з них має принаймні 1 ГБ у своєму розпорядженні. Як зазначає Джейсон, це також характерно, коли записи програм запускаються на мобільних пристроях. Список продовжується, кіоски, тонкі клієнти, рамки для фотографій тощо.
Я починаю думати, що апаратні обмеження дійсно відокремлюють програмістів від людей, які можуть змусити щось працювати, не піклуючись про те, що воно насправді споживає. Я хвилююсь (голосуйте мені, якщо потрібно), якими мовами, які абсолютно абстрактного типу і перевіряють пам'ять, до колективного пулу здорового глузду, яким (раніше) ділилися програмісти різних дисциплін.