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

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

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

9 ответов

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

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

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

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

node streams API

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

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

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

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

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

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

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

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

Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Карта сайта