You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,7 @@ The following results are for 123 unique utf-8 Bible text files in 23 languages
18
18
2. Golang 1.22.0 = 1.40s, sorting with collations: 1.71s
19
19
3. Python 3.12.2 = 5.69, sorting with collations: 6.04s
20
20
4. Crystal 1.5.1 = 5.61s
21
+
4. Crystal 1.11.2 = 13.27s
21
22
5. Elixir 1.14.0 = 7.34s
22
23
6. Julia 1.8.1 = 12.13s, sorting: 12.22s
23
24
7. Ruby 3.3.0 = 12.63s, sorting with collations: 22.00s
@@ -29,15 +30,15 @@ The new optimized Golang code version is very fast, slower than Rust but faster
29
30
30
31
* Rust = the current example uses [lexical-sort](https://lib.rs/crates/lexical-sort) which is not perfect. [There is no standard mature implementation of i18n in Rust](https://www.arewewebyet.org/topics/i18n/) at the moment.
31
32
32
-
* Python = has a great implementation of [ICU](https://icu.unicode.org/related) library however it does not support arm64/M1 platform, hence I couldn't use it in this comparison.
33
+
* Python = has a great implementation of [ICU](https://icu.unicode.org/related) library ~~however it does not support arm64/M1 platform, hence I couldn't use it in this comparison.~~
33
34
34
-
* Ruby = can sort unicode text but without collations becase it can't use ICU on arm64/M1
35
+
* Ruby = can sort unicode text ~~but without collations becase it can't use ICU on arm64/M1~~ with collations but it slowes down the code almost 2x.
35
36
36
-
* Elixir = same as Python, no ICU for M1.
37
+
* Elixir = no ICU for M1 to sort with collations.
37
38
38
39
* Julia = I couldn't find a good i18 library supporting many languages.
39
40
40
-
* Crystal = currently supports only Turkish collations. Probably because the language is young and does not have a large enough community or company behind it.
41
+
* Crystal = currently supports only Turkish collations. Probably because the language is young and does not have a large enough community or company behind it (as March 2024 still no more collations)
41
42
42
43
* Golang = has rules for many languages. You can see the influence of a large company and community which makes Golang a mature solution. Sorting slowed the whole task down significantly, but the result is correct (in this case I only checked the results for the Polish language)
43
44
@@ -54,6 +55,7 @@ The new optimized Golang code version is very fast, slower than Rust but faster
54
55
* Updated Python version to 3.12.2, added poetry, solved missing icu4 collations for M1 processors, added a fancy progress bar
55
56
* Updated Golang version to 1.22.0
56
57
* Updated Ruby version to 3.3.0, added sorting with collations for many languages (this slowed the code almost 2x)
58
+
* Updated Crystal version to 1.11.2 (using 10 cores is slower than 8 and uzsing 8 cofres is slower than 4, all is slower than v1.5.1, strange)
0 commit comments