данные с генами. Через includes в текстовом файле проверяются совпадения. Если они найдены, то в другой текстовый файл добавляется информация о необходимости повторного исследования образца.
Проблема заключается в том, что процесс проверки медленный, а данных много. Каким образом можно усовершенствовать программу, чтобы условно работало быстро на уровне всплывающих подсказок…?
Спасибо! Как понимаю переходим на БД, плюс изучаем тему с Map (пока не понятно), а «индексы прокинуть» для не опытного как более просто можно ещё назвать? (Чтобы загуглить)
Да, БД явно будет лучше текстового файла. Map в джс под капотом использует хеш-мапу, в принципе если ограничится запросом SQL то и Мар не-нужно будет. А индексы это просто индексирование определенных значений таблиц, в специальную структуру данных (в основном это б-дерево), которое в разы ускоряет поиск по этому значению но замедляет запись, через перестройку структуры дерева под новое значение
node streams API
Нужно хранить/добавлять данные в бд, искать по ней же. Собственно это тебе уже посоветовали А в каком виде хранятся данные о генах? ХХХ - типа этого?
Думаю, стоит использовать СУБД для таких вещей, а не файл - основные тормоза в большинстве программ из-за чтения и записи данных, и из-за очень сложных массивных расчётов, но во втором случае стоит задуматься о замене ноды на что-то более быстрое либо о написании либы на c/cpp и ее подключении к ноде
1. Используйте webworkers для распараллеливания задачи 2. Проведите замеры скорости выполнения отдельных фрагментов кода, выявите наиболее медленные блоки, оптимизируйте их (возможно перепишите их на с++ и скомпилируйте как подключаемую *.node библиотеку) 3. Кешируйте результаты вызова функции includes, чтобы не искать каждый раз заново 4. храните ДНК в ОЗУ, чтобы не тратить время на дисковые операции 5. используйте асинхронные методы работы с файловой системой
Так ведь там же ДНК, судя по упоминанию функции includes, там скорее всего текстовый формат вида "GCUGCCGCAGCG", как его в БД хранить то и зачем?
Ещё совет. Как я понимаю, у вас сначала считывается весь файл, а потом по нему идёт поиск. Я бы на вашем месте побайтово считывал генокод и тутже сразу параллельно искал совпадения
Обсуждают сегодня