Я собираюсь начать проект, который будет брать блоки текста, анализировать в них много данных в какой-то объект, который затем можно сериализовать, хранить и собирать статистику/данные. Это должно быть как можно быстрее, так как у меня > 10 000 000 блоков текста, с которых мне нужно начать, и я буду получать 100 000 тысяч блоков в день.
Я запускаю это в системе с 12 ядрами xeon + гиперпотоками. У меня также есть доступ / немного знаю о программировании CUDA, но для строковых вещей я думаю, что это не подходит. Из каждой строки мне нужно разобрать много данных, и некоторые из них я знаю точные позиции, некоторые нет, и мне нужно использовать регулярное выражение/что-то умное.
Итак, рассмотрим что-то вроде этого:
object[] parseAll (string [] stringsToParse)
{
parallel foreach
parse( string[n] )
}
object parse(string s)
{
try to use exact positions / substring etc here instead of regex's
}
Итак, мои вопросы:
- Насколько медленнее использование регулярных выражений для substr.
- Будет ли .NET значительно медленнее, чем другие языки?
- Какие оптимизации (если есть) я могу сделать, чтобы максимизировать параллелизм.
- Что-то еще, что я не учел?
Спасибо за любую помощь! Извините, если это многословно.