I donβt know what kind of processing you are doing here, but if you say hundreds of thousands of lines a day, this seems like a pretty small number. Suppose you get 1 million new lines to process every day, and you can fully execute 10 of these 12 Xeon cores. This is 100,000 rows per core per day. There are 86,400 seconds per day, so we say .864 seconds per line. This is a lot of parsing.
I will repeat the recommendations made by @Pieter, especially where he suggests taking measurements to see how long it takes to process. It is best to get something and work, and then figure out how to do it faster if you need to. I think you will be surprised at how often you do not need to optimize. (I know this heresy for optimization wizards, but CPU time is cheap, and programmer time is expensive.)
How slower is the regex for substr?
It totally depends on how complex your regular expressions are. As @Pieter said, if you are looking for a single line, String.Contains will probably be faster. You can also use String.IndexOfAny if you are looking for constant strings. Regular expressions are not needed unless you are looking for patterns that cannot be represented as constant strings.
Is .NET significantly slower than other languages?
In applications with an intensive processor, .NET may be slower than native applications. Sometimes. If so, it usually ranges from 5 to 20 percent, and most often from 7 to 12 percent. This is just code that runs in isolation. You must consider other factors, such as how long you have been developing a program in this other language and how difficult it is to share data between your native application and the rest of your system.
source share