Всем привет!
Нужна помощь в правильной реализации проекта: есть список в текстовом формате размером 1.5гб, в проекте необходимо сравнивать значения переменных со строками в списке максимально быстро и выдавать ок или false.
Пробовал размещать список на RAM диске в оперативке и делать поиск через c# :
При таком решении поиск очень долгий, более 5 секунд на запрос, что ну никак не устраивает...
Подскажите по какому пути пойти? Копать в строну БД или есть еще какие-то решения?
Всем заранее спасибо.
Нужна помощь в правильной реализации проекта: есть список в текстовом формате размером 1.5гб, в проекте необходимо сравнивать значения переменных со строками в списке максимально быстро и выдавать ок или false.
Пробовал размещать список на RAM диске в оперативке и делать поиск через c# :
C#:
// берем из переменной текст, который надо искать
var textContains = project.Variables["id"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["spisok"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
for(int i=0; i < sourceList.Count; i++)
{
// читаем строку из списка
var str = sourceList[i];
// проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
if (str.Contains(textContains))
{
return "yes";
}
}
}
// если ничего не нашли возвращаем "no"
return "no";
Подскажите по какому пути пойти? Копать в строну БД или есть еще какие-то решения?
Всем заранее спасибо.