Czy w przypadku porównań bez rozróżniania wielkości liter bardziej wydajne jest przekonwertowanie ciągu znaków na wielkie czy małe litery? Czy to w ogóle ma znaczenie?
W tym poście SO sugeruje się, że język C # jest bardziej wydajny z ToUpper, ponieważ „Microsoft zoptymalizował to w ten sposób”. Ale przeczytałem również ten argument, że konwersja ToLower vs ToUpper zależy od tego, co twoje ciągi zawierają więcej, i że zazwyczaj łańcuchy zawierają więcej małych liter, co sprawia, że ToLower jest bardziej wydajne.
W szczególności chciałbym wiedzieć:
- Czy istnieje sposób na zoptymalizowanie ToUpper lub ToLower tak, aby jeden był szybszy od drugiego?
- Czy szybsze jest porównywanie wielkich i małych liter bez rozróżniania liter i dlaczego?
- Czy są jakieś środowiska programistyczne (np. C, C #, Python, cokolwiek), w których jeden przypadek jest wyraźnie lepszy od drugiego i dlaczego?