私はこれが非常に最適化された土地であることを知っていますが、それはの車輪を蹴る良い言い訳のように思えましたBenchmarkDotNet。このテストの結果(.NET Coreでも)は、このサンプルテストでSubstringはRemove、よりもわずかに高速です。19.37ns対22.52ns Remove。したがって、約16%速くなります。
using System;
using BenchmarkDotNet.Attributes;
namespace BenchmarkFun
{
    public class StringSubstringVsRemove
    {
        public readonly string SampleString = " My name is Daffy Duck.";
        [Benchmark]
        public string StringSubstring() => SampleString.Substring(1);
        [Benchmark]
        public string StringRemove() => SampleString.Remove(0, 1);
        public void AssertTestIsValid()
        {
            string subsRes = StringSubstring();
            string remvRes = StringRemove();
            if (subsRes == null
                || subsRes.Length != SampleString.Length - 1
                || subsRes != remvRes) {
                throw new Exception("INVALID TEST!");
            }
        }
    }
    class Program
    {
        static void Main()
        {
            // let's make sure test results are really equal / valid
            new StringSubstringVsRemove().AssertTestIsValid();
            var summary = BenchmarkRunner.Run<StringSubstringVsRemove>();
        }
    }
}
結果:
BenchmarkDotNet=v0.11.4, OS=Windows 10.0.17763.253 (1809/October2018Update/Redstone5)
Intel Core i7-6700HQ CPU 2.60GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=3.0.100-preview-010184
  [Host]     : .NET Core 3.0.0-preview-27324-5 (CoreCLR 4.6.27322.0, CoreFX 4.7.19.7311), 64bit RyuJIT
  DefaultJob : .NET Core 3.0.0-preview-27324-5 (CoreCLR 4.6.27322.0, CoreFX 4.7.19.7311), 64bit RyuJIT
|          Method |     Mean |     Error |    StdDev |
|---------------- |---------:|----------:|----------:|
| StringSubstring | 19.37 ns | 0.3940 ns | 0.3493 ns |
|    StringRemove | 22.52 ns | 0.4062 ns | 0.3601 ns |
               
              
/ますか?