Сообщение 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>>>Поэтому смысл чего-то мерить с использованием кириллицы я не вижу.
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 нет.
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+, что демонстрирует преемственность.
Разница между .Net Core 3.1 и FW 3.5 по твои данным особо то и нет. В пределе погрешности.Обновил VS 2019 до версии 16.5.5, сбилдил и запустил этот "тест" под Core 3.1 — результат аналогичен Core 2.1
Re[11]: Регресс производительности при переходе с FW 3.5 SP1
Здравствуйте, 4058, Вы писали:
4>Здравствуйте, Serginio1, Вы писали:
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 нет.
Ну и первоначальные результаты другие
Результаты в среднем:
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+, что демонстрирует преемственность.
Разница между .Net Core 3.1 и FW 3.5 по твои данным особо то и нет. В пределе погрешности.Обновил VS 2019 до версии 16.5.5, сбилдил и запустил этот "тест" под Core 3.1 — результат аналогичен Core 2.1
Ну и первоначальные результаты другие
Результаты в среднем:
FW3.5 : String (100000) 1000000 op / 1,998 sec = 500451
FW4.0 : String (100000) 1000000 op / 5,480 sec = 182481
т.е. получаю регресс производительности в 2.7 раза (!)