Я не знаю, какую обработку вы здесь делаете, но если вы говорите сотни тысяч строк в день, это кажется довольно небольшим числом. Давайте предположим, что вы получаете 1 миллион новых строк для обработки каждый день, и вы можете полностью выполнить задачу из 10 из этих 12 ядер Xeon. Это 100 000 строк на ядро в день. В дне 86 400 секунд, поэтому мы говорим 0,864 секунды на строку. Это много анализа.
Я повторю рекомендации, сделанные @Pieter, особенно там, где он предлагает сделать измерения, чтобы увидеть, сколько времени занимает ваша обработка. Лучше всего, чтобы что-то заработало, , а затем выясните, как сделать это быстрее, если вам нужно. Я думаю, вы будете удивлены тем, как часто вам не нужно выполнять какую-либо оптимизацию. (Я знаю, что это ересь для мастеров оптимизации, но время процессора дешевое, а время программиста дорого.)
Насколько медленнее использование регулярных выражений для подстановки?
Это полностью зависит от того, насколько сложны ваши регулярные выражения. Как сказал @Pieter, если вы ищете одну строку, String.Contains
, вероятно, будет быстрее. Вы также можете использовать String.IndexOfAny
, если ищете постоянные строки. Регулярные выражения не нужны, если вы не ищете шаблоны, которые не могут быть представлены в виде константных строк.
.NET будет значительно медленнее, чем другие языки?
В приложениях, интенсивно использующих процессор, .NET может работать медленнее, чем собственные приложения. Иногда. Если это так, то обычно он составляет от 5 до 20 процентов, а чаще всего от 7 до 12 процентов. Это просто код, выполняемый изолированно. Вы должны принять во внимание другие факторы, например, сколько времени вам понадобится, чтобы построить программу на этом другом языке, и насколько сложно обмениваться данными между собственным приложением и остальной частью вашей системы.