Я экспериментировал с Node.js v12.14.1. Когда модуль загружается с помощью require (), модуль кэшируется и загружается в память.
a. Как мы узнаем размер памяти? Я использовал приведенную ниже команду, чтобы понять, сколько памяти используется. Есть ли лучший подход?
$ /usr/bin/time -l <cmd>
0.08 real 0.04 user 0.01 sys
26722304 maximum resident set size // Provides the max memory usage in bytes
0 average shared memory size
0 average unshared data size
0 average unshared stack size
6714 page reclaims
0 page faults
0 swaps
0 block input operations
0 block output operations
0 messages sent
0 messages received
0 signals received
94 voluntary context switches
155 involuntary context switches
Приведенная ниже команда при запуске узла REPL показывает максимальное использование памяти в 21 МБ.
> $ /usr/bin/time -l node
При запуске программы, которая загружает только один модуль (например: https://www.npmjs.com/package/email-templates) имеет объем памяти 76 МБ.
var emailTemplates = require('email-templates');
$ /usr/bin/time -l node index.js
Мне известно, что интерпретатор зажигания вместе с TurboFan оптимизирует код, включая байт-код в меньший более оптимизированный байт-код и, наконец, в машинный код.
б. Это относится только к теплому / горячему коду, который часто выполняется? Оптимизированы ли загруженные модули каким-либо образом?
Моя цель - написать JavaScript быстрый, оптимизированный код с меньшим объемом памяти. Я читал статьи о написании хорошего кода (например, именованные функции меньшего размера, не смешивающие типы данных свойств объекта, использующие библиотеки обещаний вместо собственных обещаний и т. Д. c)
Любая помощь очень ценится.