170 похожих чатов

Есть текстовый файл с данными о мутациях генов животных. Поступают

данные с генами. Через includes в текстовом файле проверяются совпадения. Если они найдены, то в другой текстовый файл добавляется информация о необходимости повторного исследования образца.
Проблема заключается в том, что процесс проверки медленный, а данных много. Каким образом можно усовершенствовать программу, чтобы условно работало быстро на уровне всплывающих подсказок…?

9 ответов

12 просмотров
Mania-Moon Автор вопроса

Спасибо! Как понимаю переходим на БД, плюс изучаем тему с Map (пока не понятно), а «индексы прокинуть» для не опытного как более просто можно ещё назвать? (Чтобы загуглить)

Mania Moon
Спасибо! Как понимаю переходим на БД, плюс изучаем...

Да, БД явно будет лучше текстового файла. Map в джс под капотом использует хеш-мапу, в принципе если ограничится запросом SQL то и Мар не-нужно будет. А индексы это просто индексирование определенных значений таблиц, в специальную структуру данных (в основном это б-дерево), которое в разы ускоряет поиск по этому значению но замедляет запись, через перестройку структуры дерева под новое значение

node streams API

Нужно хранить/добавлять данные в бд, искать по ней же. Собственно это тебе уже посоветовали А в каком виде хранятся данные о генах? ХХХ - типа этого?

Думаю, стоит использовать СУБД для таких вещей, а не файл - основные тормоза в большинстве программ из-за чтения и записи данных, и из-за очень сложных массивных расчётов, но во втором случае стоит задуматься о замене ноды на что-то более быстрое либо о написании либы на c/cpp и ее подключении к ноде

1. Используйте webworkers для распараллеливания задачи 2. Проведите замеры скорости выполнения отдельных фрагментов кода, выявите наиболее медленные блоки, оптимизируйте их (возможно перепишите их на с++ и скомпилируйте как подключаемую *.node библиотеку) 3. Кешируйте результаты вызова функции includes, чтобы не искать каждый раз заново 4. храните ДНК в ОЗУ, чтобы не тратить время на дисковые операции 5. используйте асинхронные методы работы с файловой системой

ㅤ ㅤ
Думаю, стоит использовать СУБД для таких вещей, а ...

Так ведь там же ДНК, судя по упоминанию функции includes, там скорее всего текстовый формат вида "GCUGCCGCAGCG", как его в БД хранить то и зачем?

Ещё совет. Как я понимаю, у вас сначала считывается весь файл, а потом по нему идёт поиск. Я бы на вашем месте побайтово считывал генокод и тутже сразу параллельно искал совпадения

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта