Я работаю с программой, которая имеет дело с файлами, я могу сделать несколько вещей, как переименовать их, прочитать содержимое них и т.д.Trading RAM ЦПУ (проблема производительности)
Сегодня я инициализацией следующим образом:
return new Promise((resolve, reject) => {
glob("path/for/files/**/*", {
nodir: true
}, (error, files) => {
files = files.map((file) => {
// properties like full name, basename, extension, etc.
});
resolve(files);
});
});
Итак, я прочитал содержание определенной директории, возвращать все файлы в массиве, а затем использовать Array.map перебрать массив и изменить пути для объекта со свойствами.
Иногда я работаю с 200 000 текстовыми файлами, поэтому это становится проблемой, потому что она потребляет слишком много ОЗУ.
Итак, я хочу заменить конструкцией с ленивой загрузкой .. но я никогда этого не делал раньше ... поэтому я ищу помощь.
Вот мой код:
class File {
constructor(path) {
this.path = path;
}
extension() {
return path.extname(this.path);
}
// etc
}
Итак, мой главный вопрос: я должен возвращать только оценку имущества, или я должен заменить его? Как это:
extension() {
this.extension = path.extname(this.path);
}
Я понимаю, что это компромисс .. я буду торговать память по использованию центрального процессора.
спасибо.
Как о * не * с помощью классов? Не можете ли вы сохранить данные файла в простых объектах? – MaxArt
Я храню файл в массиве объектов, а какой - объект. Я хочу изменить классы, чтобы улучшить использование памяти. –
@FXAMN Почему вы считаете, что классы уменьшат использование памяти? – Raito