Эффективный доступ к файлам от новейших до самых старых - PullRequest
0 голосов
/ 26 ноября 2018

Так что для проекта, над которым я работаю, я сохраняю множество файлов json локально.Внутри каждого файла есть время, указанное в нем, и я хочу иметь возможность доступа к ним от самого нового до самого старого без необходимости просматривать каждый из них, получать дату и сортировать ее.Я думал использовать двоичное дерево, чтобы сделать это, но я не могу придумать хороший способ реализовать это.Есть ли в npm модуль для этого или каким-либо другим способом, которым я мог бы сделать это, чтобы получить лучшие результаты.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Что вы можете сделать, это сохранить свой собственный файл поиска.Это отдельный файл json, который содержит идентификаторы (имена файлов) и связанные с ними внутренние данные даты.Это также даст вам возможность добавлять любые дополнительные данные, которые вам могут понадобиться для поиска / сортировки.Недостатком этого метода является то, что вам нужно убедиться, что поисковый файл и фактические файлы синхронизированы.Это означает, что везде, где вы CRUD свои данные, вы также должны убедиться, что поиск обновляется.Альтернативой этому является создание программы, которая периодически выполняет длительное сканирование всех ваших файлов и создает файл поиска.Это позволяет вам не редактировать файл при всех изменениях, но ограничивает актуальность файла поиска.

Все выигрыши в производительности обычно являются компромиссом между мем / кэшированием и сложностью.

Единственный другой важный вопрос: проверяли ли вы на самом деле производительность вашей системы на наличие реальных узких мест?Вы уверены, что вам даже нужно оптимизировать это?

0 голосов
/ 26 ноября 2018

fs.stat будет полезен в этом случае и не потребует никаких модулей в npm.
Однако в этом случае вы столкнетесь с множеством проблем с синхронными циклами;для этого вы можете использовать await и async (подробнее см. this ).
fs.stat возвращает объект, который возвращает такие вещи, как когда файл был отредактирован и когда файл был создан.
Если вы хотите поместить файлы JSON в папку, я бы использовал fs.readdir;если вы этого не сделали, вы можете использовать fs.readdir для вывода списка всех файлов в вашей текущей папке, а затем использовать модуль mime-type npm, чтобы проверить, являются ли файлы, которые вы заказываете, файлами JSON или нет..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...