Wydajność metod statycznych a metody instancji

Moje pytanie dotyczy charakterystyki wydajności metod statycznych vs metod instancji i ich skalowalności. Załóżmy, że w tym scenariuszu wszystkie definicje klas znajdują się w jednym zespole i że wymagane jest wiele dyskretnych typów wskaźników.

Rozważać:

public sealed class InstanceClass
{
      public int DoOperation1(string input)
      {
          // Some operation.
      }

      public int DoOperation2(string input)
      {
          // Some operation.
      }

      // … more instance methods.
}

public static class StaticClass
{
      public static int DoOperation1(string input)
      {
          // Some operation.
      }

      public static int DoOperation2(string input)
      {
          // Some operation.
      }

      // … more static methods.
}

Powyższe klasy reprezentują wzór stylu pomocniczego.

W klasie instancji rozwiązanie metody instancji zajmuje chwilę, aby przeciwstawić się StaticClass.

Moje pytania to:

Gdy zachowanie stanu nie jest problemem (nie są wymagane żadne pola ani właściwości), czy zawsze lepiej jest użyć klasy statycznej?

Gdzie istnieje znaczna liczba tych statycznych definicji klas (powiedzmy na przykład 100, z wieloma metodami statycznymi), czy wpłynie to negatywnie na wydajność wykonania lub zużycie pamięci w porównaniu z taką samą liczbą definicji klas instancji?

Kiedy wywoływana jest inna metoda w tej samej klasie instancji, czy nadal występuje rozdzielczość instancji? Na przykład przy użyciu słowa kluczowego [to], takiego jakthis.DoOperation2("abc") z wewnątrzDoOperation1 tej samej instancji.