Информация об изменениях

Сообщение Re[11]: Регресс производительности при переходе с FW 3.5 SP1 от 16.05.2020 19:41

Изменено 16.05.2020 19:46 Serginio1

Re[11]: Регресс производительности при переходе с FW 3.5 SP1
Здравствуйте, 4058, Вы писали:

4>Здравствуйте, Serginio1, Вы писали:



4>
4>FW 3.5: Int (1000000) 100000000 op / 0,872 sec = 114699379
4>FW 4.0: Int (1000000) 100000000 op / 0,990 sec = 101008734
4>Core31: Int (1000000) 100000000 op / 0,893 sec = 111996104
4>


4>>>Поэтому смысл чего-то мерить с использованием кириллицы я не вижу.


S>> А ты попробуй, в чем проблема?


4>Заменил "X" на "Ё", результаты те-же, не понимаю, что должно было изменится, строки в .NET исторически UTF-16 и один символ ASCII в UTF-16 занимает 2 байта, собственно как и буква "Ё".


https://docs.microsoft.com/en-us/dotnet/api/system.string?redirectedfrom=MSDN&view=netcore-3.1

Только вот алгоритм сравнения может быть разный в зависимости от версии фреймворка и версии юникода

Ну во первых ты писал, что разницы между .Net Core 3.1 и FW 4.0 нет.

Стоит отметить, что на .Net Core 2.1 результат аналогичен FW 4+, что демонстрирует преемственность.


Обновил VS 2019 до версии 16.5.5, сбилдил и запустил этот "тест" под Core 3.1 — результат аналогичен Core 2.1

Разница между .Net Core 3.1 и FW 3.5 по твои данным особо то и нет. В пределе погрешности.
Re[11]: Регресс производительности при переходе с FW 3.5 SP1
Здравствуйте, 4058, Вы писали:

4>Здравствуйте, Serginio1, Вы писали:



4>
4>FW 3.5: Int (1000000) 100000000 op / 0,872 sec = 114699379
4>FW 4.0: Int (1000000) 100000000 op / 0,990 sec = 101008734
4>Core31: Int (1000000) 100000000 op / 0,893 sec = 111996104
4>


4>>>Поэтому смысл чего-то мерить с использованием кириллицы я не вижу.


S>> А ты попробуй, в чем проблема?


4>Заменил "X" на "Ё", результаты те-же, не понимаю, что должно было изменится, строки в .NET исторически UTF-16 и один символ ASCII в UTF-16 занимает 2 байта, собственно как и буква "Ё".


https://docs.microsoft.com/en-us/dotnet/api/system.string?redirectedfrom=MSDN&view=netcore-3.1

Только вот алгоритм сравнения может быть разный в зависимости от версии фреймворка и версии юникода

Ну во первых ты писал, что разницы между .Net Core 3.1 и FW 4.0 нет.

Стоит отметить, что на .Net Core 2.1 результат аналогичен FW 4+, что демонстрирует преемственность.


Обновил VS 2019 до версии 16.5.5, сбилдил и запустил этот "тест" под Core 3.1 — результат аналогичен Core 2.1

Разница между .Net Core 3.1 и FW 3.5 по твои данным особо то и нет. В пределе погрешности.

Ну и первоначальные результаты другие

Результаты в среднем:

FW3.5 : String (100000) 1000000 op / 1,998 sec = 500451
FW4.0 : String (100000) 1000000 op / 5,480 sec = 182481

т.е. получаю регресс производительности в 2.7 раза (!)