Использование памяти Ruby определенно является болевым пунктом , когда дело доходит до развертывания. Возьмем, к примеру, хорошо разработанное (в обоих значениях этого термина: 1) разработанное с использованием передового опыта и 2) обширное) приложение Rails «с радостью» займет более 256 МБ в системе, где оно развернуто. Но вы получите весь этот довольно полезный синтаксический сахар с ним. Это «добро» для «зла».
Меня не слишком беспокоит то, как Ruby хранит объект Array
, как было в вашем примере. Даже как опытный разработчик Ruby, мне все равно, как он хранится, потому что я предполагаю, что создатели языка знали, как оптимизировать язык, и сделали это хорошо. Но каждый релиз быстрее.
На ум приходят два места, где вы должны быть осторожны с использованием памяти в вашем приложении:
- Чтение больших файлов
- Создание множества объектов
Если вы собираетесь читать файл размером 160 МБ в вашу программу на Ruby, это будет более 160 МБ памяти, которая будет занята.
Тогда, если вы создаете слишком много объектов, каждый объект имеет свое собственное распределение памяти. Допустим, это 16 КБ на объект. Если вы создаете миллион объектов, это 16 000 000 КБ или 16 ГБ.
Только будь осторожен!
Вас также может заинтересовать этот удобный инструмент .