dotnet/runtime
Voir sur GitHubInitializing the "ja" culture takes 200ms when using ICU
Open
#31 273 ouverte le 23 oct. 2019
area-System.Globalizationhelp wantedos-linuxtenet-performance
Métriques du dépôt
- Stars
- (17 886 stars)
- Métriques de merge PR
- (Merge moyen 12j 11h) (661 PRs mergées en 30 j)
Description
DateTime.Parse for "ja" culture (ONLY) is 10x times slower on Linux compared to Windows
| Slower | diff/base | Windows Median (ns) | Linux Median (ns) |
|---|---|---|---|
| System.Globalization.Tests.Perf_DateTimeCultureInfo.Parse(culturestring: ja) | 8.87 | 454.24 | 4029.00 |
| System.Globalization.Tests.Perf_DateTimeCultureInfo.ToString(culturestring: da) | 1.08 | 236.39 | 254.59 |
| System.Globalization.Tests.Perf_DateTimeCultureInfo.ToString(culturestring: ) | 1.05 | 245.69 | 258.02 |
| System.Globalization.Tests.Perf_DateTimeCultureInfo.ToString(culturestring: ja) | 1.05 | 245.61 | 257.00 |
| System.Globalization.Tests.Perf_DateTimeCultureInfo.ToString(culturestring: fr) | 1.05 | 245.56 | 256.82 |
| Faster | Win/Lin | Windows Median (ns) | Linux Median (ns) |
|---|---|---|---|
| System.Globalization.Tests.Perf_DateTimeCultureInfo.Parse(culturestring: da) | 1.24 | 531.21 | 428.73 |
| System.Globalization.Tests.Perf_DateTimeCultureInfo.Parse(culturestring: fr) | 1.05 | 450.44 | 428.87 |
| System.Globalization.Tests.Perf_DateTimeCultureInfo.ToStringHebrewIsrael | 1.04 | 509.37 | 488.81 |
The contributor who wants to work on this issue should:
- Run this simple benchmark from dotnet/performance repository and confirm the problem
git clone https://github.com/dotnet/performance.git
python3 ./performance/scripts/benchmarks_ci.py -f netcoreapp5.0 --filter System.Globalization.Tests.Perf_DateTimeCultureInfo.Parse
- Build CoreCLR locally: https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-corefx.md#Build
- Create a small repro app: https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-corefx.md#repro
- Use PerfCollect to identify issue https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-corefx.md#PerfCollect
- Solve the issue