dotnet/runtime
Ver no GitHubInitializing the "ja" culture takes 200ms when using ICU
Open
#31.273 aberto em 23 de out. de 2019
area-System.Globalizationhelp wantedos-linuxtenet-performance
Métricas do repositório
- Stars
- (17.886 stars)
- Métricas de merge de PR
- (Mesclagem média 12d 11h) (661 fundiu PRs em 30d)
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