Compare commits
10 Commits
78b9f39bea
...
0b181fab6e
Author | SHA1 | Date | |
---|---|---|---|
0b181fab6e | |||
10fa61ff55 | |||
f2f42af0f8 | |||
a2f972b72d | |||
bec8f3e5d2 | |||
01c4d92508 | |||
99a1d49539 | |||
364364215a | |||
f4ff7b7784 | |||
d4dd63e2b7 |
192
Cargo.lock
generated
192
Cargo.lock
generated
@ -40,9 +40,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "allocator-api2"
|
name = "allocator-api2"
|
||||||
version = "0.2.16"
|
version = "0.2.18"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
|
checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "android-tzdata"
|
name = "android-tzdata"
|
||||||
@ -109,9 +109,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "anyhow"
|
name = "anyhow"
|
||||||
version = "1.0.81"
|
version = "1.0.82"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
|
checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"backtrace",
|
"backtrace",
|
||||||
]
|
]
|
||||||
@ -133,13 +133,13 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "async-trait"
|
name = "async-trait"
|
||||||
version = "0.1.79"
|
version = "0.1.80"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
|
checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -216,9 +216,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bumpalo"
|
name = "bumpalo"
|
||||||
version = "3.15.4"
|
version = "3.16.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
|
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bytemuck"
|
name = "bytemuck"
|
||||||
@ -234,9 +234,9 @@ checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.0.90"
|
version = "1.0.95"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
|
checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cfg-if"
|
name = "cfg-if"
|
||||||
@ -252,9 +252,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "chrono"
|
name = "chrono"
|
||||||
version = "0.4.37"
|
version = "0.4.38"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
|
checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"android-tzdata",
|
"android-tzdata",
|
||||||
"iana-time-zone",
|
"iana-time-zone",
|
||||||
@ -262,7 +262,7 @@ dependencies = [
|
|||||||
"num-traits",
|
"num-traits",
|
||||||
"serde",
|
"serde",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
"windows-targets 0.52.4",
|
"windows-targets 0.52.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -296,7 +296,7 @@ dependencies = [
|
|||||||
"heck",
|
"heck",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -484,7 +484,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -558,7 +558,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -593,9 +593,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "getrandom"
|
name = "getrandom"
|
||||||
version = "0.2.12"
|
version = "0.2.14"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
|
checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
@ -919,7 +919,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
|
checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"windows-targets 0.52.4",
|
"windows-targets 0.52.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1214,9 +1214,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc-macro2"
|
name = "proc-macro2"
|
||||||
version = "1.0.79"
|
version = "1.0.81"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
|
checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
@ -1229,9 +1229,9 @@ checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quote"
|
name = "quote"
|
||||||
version = "1.0.35"
|
version = "1.0.36"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
|
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
]
|
]
|
||||||
@ -1244,9 +1244,9 @@ checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "raw-window-handle"
|
name = "raw-window-handle"
|
||||||
version = "0.6.0"
|
version = "0.6.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
|
checksum = "8cc3bcbdb1ddfc11e700e62968e6b4cc9c75bb466464ad28fb61c5b2c964418b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "redox_syscall"
|
name = "redox_syscall"
|
||||||
@ -1435,29 +1435,29 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde"
|
name = "serde"
|
||||||
version = "1.0.197"
|
version = "1.0.198"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
|
checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_derive"
|
name = "serde_derive"
|
||||||
version = "1.0.197"
|
version = "1.0.198"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
|
checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_json"
|
name = "serde_json"
|
||||||
version = "1.0.115"
|
version = "1.0.116"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
|
checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"itoa",
|
"itoa",
|
||||||
@ -1467,13 +1467,13 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_repr"
|
name = "serde_repr"
|
||||||
version = "0.1.18"
|
version = "0.1.19"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
|
checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1487,9 +1487,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "signal-hook-registry"
|
name = "signal-hook-registry"
|
||||||
version = "1.4.1"
|
version = "1.4.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
|
checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
@ -1586,9 +1586,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "2.0.58"
|
version = "2.0.60"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
|
checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -1632,9 +1632,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thirtyfour-macros"
|
name = "thirtyfour-macros"
|
||||||
version = "0.1.1"
|
version = "0.1.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9cae91d1c7c61ec65817f1064954640ee350a50ae6548ff9a1bdd2489d6ffbb0"
|
checksum = "67c98f6ff7045a00ce7ef2fb2f5ebd5c3c6dfe8fc0c1858249e32555fa8059df"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro-error",
|
"proc-macro-error",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
@ -1644,22 +1644,22 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thiserror"
|
name = "thiserror"
|
||||||
version = "1.0.58"
|
version = "1.0.59"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
|
checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"thiserror-impl",
|
"thiserror-impl",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thiserror-impl"
|
name = "thiserror-impl"
|
||||||
version = "1.0.58"
|
version = "1.0.59"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
|
checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1674,9 +1674,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time"
|
name = "time"
|
||||||
version = "0.3.34"
|
version = "0.3.36"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
|
checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"deranged",
|
"deranged",
|
||||||
"itoa",
|
"itoa",
|
||||||
@ -1695,9 +1695,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time-macros"
|
name = "time-macros"
|
||||||
version = "0.2.17"
|
version = "0.2.18"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
|
checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"num-conv",
|
"num-conv",
|
||||||
"time-core",
|
"time-core",
|
||||||
@ -1745,7 +1745,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1784,7 +1784,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1831,7 +1831,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tswn"
|
name = "tswn"
|
||||||
version = "0.1.1"
|
version = "0.1.5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base16384",
|
"base16384",
|
||||||
"chrono",
|
"chrono",
|
||||||
@ -1839,6 +1839,7 @@ dependencies = [
|
|||||||
"colored",
|
"colored",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
|
"windows-sys 0.48.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1963,7 +1964,7 @@ dependencies = [
|
|||||||
"once_cell",
|
"once_cell",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
"wasm-bindgen-shared",
|
"wasm-bindgen-shared",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -1997,7 +1998,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
"wasm-bindgen-backend",
|
"wasm-bindgen-backend",
|
||||||
"wasm-bindgen-shared",
|
"wasm-bindgen-shared",
|
||||||
]
|
]
|
||||||
@ -2049,9 +2050,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wgpu"
|
name = "wgpu"
|
||||||
version = "0.19.3"
|
version = "0.19.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a4b1213b52478a7631d6e387543ed8f642bc02c578ef4e3b49aca2a29a7df0cb"
|
checksum = "cbd7311dbd2abcfebaabf1841a2824ed7c8be443a0f29166e5d3c6a53a762c01"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrayvec",
|
"arrayvec",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
@ -2074,9 +2075,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wgpu-core"
|
name = "wgpu-core"
|
||||||
version = "0.19.3"
|
version = "0.19.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f9f6b033c2f00ae0bc8ea872c5989777c60bc241aac4e58b24774faa8b391f78"
|
checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrayvec",
|
"arrayvec",
|
||||||
"bit-vec",
|
"bit-vec",
|
||||||
@ -2100,9 +2101,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wgpu-hal"
|
name = "wgpu-hal"
|
||||||
version = "0.19.3"
|
version = "0.19.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "49f972c280505ab52ffe17e94a7413d9d54b58af0114ab226b9fc4999a47082e"
|
checksum = "fc1a4924366df7ab41a5d8546d6534f1f33231aa5b3f72b9930e300f254e39c3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"android_system_properties",
|
"android_system_properties",
|
||||||
"arrayvec",
|
"arrayvec",
|
||||||
@ -2192,11 +2193,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "winapi-util"
|
name = "winapi-util"
|
||||||
version = "0.1.6"
|
version = "0.1.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
|
checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"winapi",
|
"windows-sys 0.52.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2212,7 +2213,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
|
checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"windows-core",
|
"windows-core",
|
||||||
"windows-targets 0.52.4",
|
"windows-targets 0.52.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2221,7 +2222,7 @@ version = "0.52.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
|
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"windows-targets 0.52.4",
|
"windows-targets 0.52.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2239,7 +2240,7 @@ version = "0.52.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"windows-targets 0.52.4",
|
"windows-targets 0.52.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2259,17 +2260,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows-targets"
|
name = "windows-targets"
|
||||||
version = "0.52.4"
|
version = "0.52.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
|
checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"windows_aarch64_gnullvm 0.52.4",
|
"windows_aarch64_gnullvm 0.52.5",
|
||||||
"windows_aarch64_msvc 0.52.4",
|
"windows_aarch64_msvc 0.52.5",
|
||||||
"windows_i686_gnu 0.52.4",
|
"windows_i686_gnu 0.52.5",
|
||||||
"windows_i686_msvc 0.52.4",
|
"windows_i686_gnullvm",
|
||||||
"windows_x86_64_gnu 0.52.4",
|
"windows_i686_msvc 0.52.5",
|
||||||
"windows_x86_64_gnullvm 0.52.4",
|
"windows_x86_64_gnu 0.52.5",
|
||||||
"windows_x86_64_msvc 0.52.4",
|
"windows_x86_64_gnullvm 0.52.5",
|
||||||
|
"windows_x86_64_msvc 0.52.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2280,9 +2282,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_aarch64_gnullvm"
|
name = "windows_aarch64_gnullvm"
|
||||||
version = "0.52.4"
|
version = "0.52.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
|
checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_aarch64_msvc"
|
name = "windows_aarch64_msvc"
|
||||||
@ -2292,9 +2294,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_aarch64_msvc"
|
name = "windows_aarch64_msvc"
|
||||||
version = "0.52.4"
|
version = "0.52.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
|
checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_i686_gnu"
|
name = "windows_i686_gnu"
|
||||||
@ -2304,9 +2306,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_i686_gnu"
|
name = "windows_i686_gnu"
|
||||||
version = "0.52.4"
|
version = "0.52.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
|
checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows_i686_gnullvm"
|
||||||
|
version = "0.52.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_i686_msvc"
|
name = "windows_i686_msvc"
|
||||||
@ -2316,9 +2324,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_i686_msvc"
|
name = "windows_i686_msvc"
|
||||||
version = "0.52.4"
|
version = "0.52.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
|
checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_x86_64_gnu"
|
name = "windows_x86_64_gnu"
|
||||||
@ -2328,9 +2336,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_x86_64_gnu"
|
name = "windows_x86_64_gnu"
|
||||||
version = "0.52.4"
|
version = "0.52.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
|
checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_x86_64_gnullvm"
|
name = "windows_x86_64_gnullvm"
|
||||||
@ -2340,9 +2348,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_x86_64_gnullvm"
|
name = "windows_x86_64_gnullvm"
|
||||||
version = "0.52.4"
|
version = "0.52.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
|
checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_x86_64_msvc"
|
name = "windows_x86_64_msvc"
|
||||||
@ -2352,9 +2360,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows_x86_64_msvc"
|
name = "windows_x86_64_msvc"
|
||||||
version = "0.52.4"
|
version = "0.52.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
|
checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "xml-rs"
|
name = "xml-rs"
|
||||||
@ -2379,5 +2387,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.58",
|
"syn 2.0.60",
|
||||||
]
|
]
|
||||||
|
76
bench/tswn.md
Normal file
76
bench/tswn.md
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
# tswn 效率记录
|
||||||
|
|
||||||
|
## 0.1.1
|
||||||
|
|
||||||
|
> 445E/d
|
||||||
|
|
||||||
|
```text
|
||||||
|
2024-04-25T14:38:37.928073Z INFO tswn: 输出文件: "./namerena/namerena-shenjacks-2024-04-25_22-38-37.txt"
|
||||||
|
2024-04-25T14:38:37.928448Z INFO tswn: 开始: 0 结尾: 100000000
|
||||||
|
2024-04-25T14:38:37.928527Z INFO tswn: 线程数: 1
|
||||||
|
2024-04-25T14:38:37.928582Z INFO tswn: 八围预期: 640
|
||||||
|
2024-04-25T14:38:37.928633Z INFO tswn: 队伍名: shenjacks
|
||||||
|
2024-04-25T14:38:37.928689Z INFO tswn: 输出文件名: "./namerena/namerena-shenjacks-2024-04-25_22-38-37.txt"
|
||||||
|
2024-04-25T14:38:37.928773Z INFO tswn: 开始计算
|
||||||
|
2024-04-25T14:38:37.928857Z INFO tswn: 线程 thread_0 开始计算
|
||||||
|
2024-04-25T14:38:37.947371Z INFO tswn::cacluate: | 1|Id: 10000|542408.18/s 468.641E/d 0.02⬆️|0 |预计:0:3:4|
|
||||||
|
2024-04-25T14:38:48.111355Z INFO tswn::cacluate: | 1|Id: 5434080|533663.84/s 461.086E/d 10.16⬇️|0 |预计:0:2:57|
|
||||||
|
2024-04-25T14:38:58.566294Z INFO tswn::cacluate: | 1|Id: 10770710|510448.33/s 441.027E/d 10.45⬇️|0 |预计:0:2:54|
|
||||||
|
2024-04-25T14:39:08.419676Z INFO tswn::cacluate: | 1|Id: 15875190|518062.38/s 447.606E/d 9.85⬆️|0 |预计:0:2:42|
|
||||||
|
2024-04-25T14:39:18.371574Z INFO tswn::cacluate: | 1|Id: 21055810|520575.43/s 449.777E/d 9.95⬆️|0 |预计:0:2:31|
|
||||||
|
2024-04-25T14:39:28.277127Z INFO tswn::cacluate: | 1|Id: 26261560|525550.00/s 454.075E/d 9.91⬆️|0 |预计:0:2:20|
|
||||||
|
2024-04-25T14:39:38.073338Z INFO tswn::cacluate: | 1|Id: 31517060|536495.12/s 463.532E/d 9.80⬆️|0 |预计:0:2:7|
|
||||||
|
2024-04-25T14:39:48.224642Z INFO tswn::cacluate: | 1|Id: 36882010|528507.78/s 456.631E/d 10.15⬇️|0 |预计:0:1:59|
|
||||||
|
```
|
||||||
|
|
||||||
|
## 0.1.2
|
||||||
|
|
||||||
|
> 478E/d
|
||||||
|
|
||||||
|
```text
|
||||||
|
2024-04-25T14:49:18.046424Z INFO tswn: 输出文件: "./namerena/namerena-shenjacks-2024-04-25_22-49-18.txt"
|
||||||
|
2024-04-25T14:49:18.046647Z INFO tswn: 开始: 0 结尾: 100000000
|
||||||
|
2024-04-25T14:49:18.046739Z INFO tswn: 线程数: 1
|
||||||
|
2024-04-25T14:49:18.046814Z INFO tswn: 八围预期: 640
|
||||||
|
2024-04-25T14:49:18.046888Z INFO tswn: 队伍名: shenjacks
|
||||||
|
2024-04-25T14:49:18.046961Z INFO tswn: 输出文件名: "./namerena/namerena-shenjacks-2024-04-25_22-49-18.txt"
|
||||||
|
2024-04-25T14:49:18.047072Z INFO tswn: 开始计算
|
||||||
|
2024-04-25T14:49:18.047205Z INFO tswn: 线程 thread_0 开始计算
|
||||||
|
2024-04-25T14:49:18.067274Z INFO tswn::cacluate: | 1|Id: 10000|500668.39/s 432.577E/d 0.02⬆️|0 |预计:0:3:19|
|
||||||
|
2024-04-25T14:49:26.959820Z INFO tswn::cacluate: | 1|Id: 5016680|563031.98/s 486.460E/d 8.89⬆️|0 |预计:0:2:48|
|
||||||
|
2024-04-25T14:49:37.050652Z INFO tswn::cacluate: | 1|Id: 10646990|557974.03/s 482.090E/d 10.09⬇️|0 |预计:0:2:40|
|
||||||
|
2024-04-25T14:49:47.117235Z INFO tswn::cacluate: | 1|Id: 16226730|554294.40/s 478.910E/d 10.07⬇️|0 |预计:0:2:31|
|
||||||
|
2024-04-25T14:49:57.134571Z INFO tswn::cacluate: | 1|Id: 21769670|553354.55/s 478.098E/d 10.02⬇️|0 |预计:0:2:21|
|
||||||
|
2024-04-25T14:50:07.084869Z INFO tswn::cacluate: | 1|Id: 27303210|556126.12/s 480.493E/d 9.95⬆️|0 |预计:0:2:10|
|
||||||
|
2024-04-25T14:50:17.165308Z INFO tswn::cacluate: | 1|Id: 32864470|551717.27/s 476.684E/d 10.08⬇️|0 |预计:0:2:1|
|
||||||
|
2024-04-25T14:50:27.177012Z INFO tswn::cacluate: | 1|Id: 38381640|551097.33/s 476.148E/d 10.01⬇️|0 |预计:0:1:51|
|
||||||
|
2024-04-25T14:50:37.102177Z INFO tswn::cacluate: | 1|Id: 43892610|555281.37/s 479.763E/d 9.92⬆️|0 |预计:0:1:41|
|
||||||
|
2024-04-25T14:50:47.147717Z INFO tswn::cacluate: | 1|Id: 49445420|552772.98/s 477.596E/d 10.05⬇️|0 |预计:0:1:31|
|
||||||
|
2024-04-25T14:50:57.108934Z INFO tswn::cacluate: | 1|Id: 54973140|554932.97/s 479.462E/d 9.96⬆️|0 |预计:0:1:21|
|
||||||
|
```
|
||||||
|
|
||||||
|
## 0.1.3
|
||||||
|
|
||||||
|
> 550E/d
|
||||||
|
|
||||||
|
```text
|
||||||
|
2024-04-25T15:02:14.455532Z INFO tswn: 输出文件: "./namerena/namerena-shenjacks-2024-04-25_23-02-14.txt"
|
||||||
|
2024-04-25T15:02:14.455701Z INFO tswn: 开始: 0 结尾: 100000000
|
||||||
|
2024-04-25T15:02:14.455757Z INFO tswn: 线程数: 1
|
||||||
|
2024-04-25T15:02:14.455806Z INFO tswn: 八围预期: 640
|
||||||
|
2024-04-25T15:02:14.455853Z INFO tswn: 队伍名: shenjacks
|
||||||
|
2024-04-25T15:02:14.455899Z INFO tswn: 输出文件名: "./namerena/namerena-shenjacks-2024-04-25_23-02-14.txt"
|
||||||
|
2024-04-25T15:02:14.455979Z INFO tswn: 开始计算
|
||||||
|
2024-04-25T15:02:14.456032Z INFO tswn: 线程 thread_0 开始计算
|
||||||
|
2024-04-25T15:02:14.471838Z INFO tswn::cacluate: | 1|Id: 10000|635833.00/s 549.360E/d 0.02⬆️|0 |预计:0:2:37|
|
||||||
|
2024-04-25T15:02:24.556257Z INFO tswn::cacluate: | 1|Id: 6368330|630517.99/s 544.768E/d 10.08⬇️|0 |预计:0:2:28|
|
||||||
|
2024-04-25T15:02:34.374117Z INFO tswn::cacluate: | 1|Id: 12673500|642224.18/s 554.882E/d 9.82⬆️|0 |预计:0:2:15|
|
||||||
|
2024-04-25T15:02:44.419013Z INFO tswn::cacluate: | 1|Id: 19095740|639400.29/s 552.442E/d 10.04⬇️|0 |预计:0:2:6|
|
||||||
|
2024-04-25T15:02:54.349142Z INFO tswn::cacluate: | 1|Id: 25489740|643910.74/s 556.339E/d 9.93⬆️|0 |预计:0:1:55|
|
||||||
|
2024-04-25T15:03:04.362691Z INFO tswn::cacluate: | 1|Id: 31928840|643051.51/s 555.597E/d 10.01⬇️|0 |预计:0:1:45|
|
||||||
|
2024-04-25T15:03:14.336906Z INFO tswn::cacluate: | 1|Id: 38359350|644727.96/s 557.045E/d 9.97⬆️|0 |预计:0:1:35|
|
||||||
|
2024-04-25T15:03:24.423038Z INFO tswn::cacluate: | 1|Id: 44806620|639233.80/s 552.298E/d 10.09⬇️|0 |预计:0:1:26|
|
||||||
|
2024-04-25T15:03:34.344623Z INFO tswn::cacluate: | 1|Id: 51198950|644297.20/s 556.673E/d 9.92⬆️|0 |预计:0:1:15|
|
||||||
|
2024-04-25T15:03:44.331352Z INFO tswn::cacluate: | 1|Id: 57641920|645164.91/s 557.422E/d 9.99⬆️|0 |预计:0:1:5|
|
||||||
|
2024-04-25T15:03:54.332496Z INFO tswn::cacluate: | 1|Id: 64093560|645118.80/s 557.383E/d 10.00⬇️|0 |预计:0:0:55|
|
||||||
|
```
|
@ -1,20 +1,29 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "tswn"
|
name = "tswn"
|
||||||
description = "tool shenjack work shop namerena"
|
description = "tool shenjack work shop namerena"
|
||||||
version = "0.1.1"
|
version = "0.1.5"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = { version = "4.5.1", features = ["derive"] }
|
clap = { version = "4.5.4", features = ["derive"] }
|
||||||
base16384 = "0.1.0"
|
base16384 = "0.1.0"
|
||||||
|
|
||||||
tracing = "0.1.40"
|
tracing = "0.1.40"
|
||||||
tracing-subscriber = { version = "0.3.18", features = ["time"] }
|
tracing-subscriber = { version = "0.3.18", features = ["time"] }
|
||||||
chrono = "0.4.34"
|
chrono = "0.4"
|
||||||
colored = "2.1.0"
|
colored = "2.1.0"
|
||||||
|
|
||||||
|
# windows 下额外指定一个 windows 依赖 (微软赛高!)
|
||||||
|
# 用于在 bench 状态下指定核心(就是闲得)
|
||||||
|
|
||||||
|
[target.'cfg(windows)'.dependencies]
|
||||||
|
windows-sys = { version = "*", features = [
|
||||||
|
"Win32_Foundation",
|
||||||
|
"Win32_System_Threading",
|
||||||
|
] }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["simd"]
|
default = ["simd"]
|
||||||
simd = []
|
simd = []
|
||||||
|
1
miner/docs/.gitignore
vendored
Normal file
1
miner/docs/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
runs
|
169
miner/docs/bench.md
Normal file
169
miner/docs/bench.md
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
# tswn (miner bench)
|
||||||
|
|
||||||
|
## 方法
|
||||||
|
|
||||||
|
> --release
|
||||||
|
|
||||||
|
`--team shenjacks -q 5500 --end 100000000 --bench`
|
||||||
|
|
||||||
|
环境
|
||||||
|
|
||||||
|
> 5600x 4.3GHz
|
||||||
|
|
||||||
|
## 结果
|
||||||
|
|
||||||
|
### 0.1.5
|
||||||
|
|
||||||
|
> 要命
|
||||||
|
>
|
||||||
|
> 不过至少榨干了
|
||||||
|
>
|
||||||
|
> 虚评还没榨干呢就是了
|
||||||
|
|
||||||
|
```text
|
||||||
|
❯ .\runs\tswn-015.exe --team shenjacks -q 5500 --end 100000000 --bench
|
||||||
|
2024-04-25T16:57:24.563330Z INFO tswn: 输出文件: "./namerena/namerena-shenjacks-2024-04-26_00-57-24.txt"
|
||||||
|
2024-04-25T16:57:24.563545Z INFO tswn: 设置线程亲和性成功 4095
|
||||||
|
2024-04-25T16:57:24.563599Z INFO tswn: 开始: 0 结尾: 100000000
|
||||||
|
2024-04-25T16:57:24.563647Z INFO tswn: 线程数: 1
|
||||||
|
2024-04-25T16:57:24.563699Z INFO tswn: 八围预期: 640
|
||||||
|
2024-04-25T16:57:24.563743Z INFO tswn: 队伍名: shenjacks
|
||||||
|
2024-04-25T16:57:24.563785Z INFO tswn: 输出文件名: "./namerena/namerena-shenjacks-2024-04-26_00-57-24.txt"
|
||||||
|
2024-04-25T16:57:24.563829Z INFO tswn: 预期状态输出时间间隔: 10 秒
|
||||||
|
2024-04-25T16:57:24.563879Z INFO tswn: 是否启动 benchmark 模式: true
|
||||||
|
2024-04-25T16:57:24.563922Z INFO tswn: 开始 benchmark
|
||||||
|
2024-04-25T16:57:24.578851Z INFO tswn::cacluate: | 1|Id: 10000|671821.78/s 580.454E/d 0.01⬆️|0 |预计:0:2:28|
|
||||||
|
2024-04-25T16:57:34.578359Z INFO tswn::cacluate: | 1|Id: 6728210|671860.35/s 580.487E/d 10.00⬆️|0 |预计:0:2:18|
|
||||||
|
2024-04-25T16:57:44.575895Z INFO tswn::cacluate: | 1|Id: 13446810|672032.96/s 580.636E/d 10.00⬆️|0 |预计:0:2:8|
|
||||||
|
2024-04-25T16:57:54.591460Z INFO tswn::cacluate: | 1|Id: 20167130|670995.58/s 579.740E/d 10.02⬇️|0 |预计:0:1:58|
|
||||||
|
2024-04-25T16:58:04.566468Z INFO tswn::cacluate: | 1|Id: 26877080|672683.34/s 581.198E/d 9.97⬆️|0 |预计:0:1:48|
|
||||||
|
2024-04-25T16:58:14.569120Z INFO tswn::cacluate: | 1|Id: 33603910|672512.54/s 581.051E/d 10.00⬇️|0 |预计:0:1:38|
|
||||||
|
2024-04-25T16:58:24.568515Z INFO tswn::cacluate: | 1|Id: 40329030|672560.85/s 581.093E/d 10.00⬆️|0 |预计:0:1:28|
|
||||||
|
2024-04-25T16:58:34.568901Z INFO tswn::cacluate: | 1|Id: 47054630|672541.67/s 581.076E/d 10.00⬇️|0 |预计:0:1:18|
|
||||||
|
2024-04-25T16:58:44.567734Z INFO tswn::cacluate: | 1|Id: 53780040|672627.21/s 581.150E/d 10.00⬆️|0 |预计:0:1:8|
|
||||||
|
2024-04-25T16:58:54.566817Z INFO tswn::cacluate: | 1|Id: 60506310|672696.30/s 581.210E/d 10.00⬆️|0 |预计:0:0:58|
|
||||||
|
2024-04-25T16:59:04.552976Z INFO tswn::cacluate: | 1|Id: 67233270|673636.33/s 582.022E/d 9.99⬆️|0 |预计:0:0:48|
|
||||||
|
2024-04-25T16:59:14.573063Z INFO tswn::cacluate: | 1|Id: 73969630|672293.31/s 580.861E/d 10.02⬇️|0 |预计:0:0:38|
|
||||||
|
```
|
||||||
|
|
||||||
|
### 0.1.4
|
||||||
|
|
||||||
|
> 说啥来啥
|
||||||
|
|
||||||
|
```text
|
||||||
|
❯ .\runs\tswn-014.exe --team shenjacks -q 5500 --end 100000000 --bench
|
||||||
|
2024-04-25T16:41:01.955880Z INFO tswn: 输出文件: "./namerena/namerena-shenjacks-2024-04-26_00-41-01.txt"
|
||||||
|
2024-04-25T16:41:01.956097Z INFO tswn: 设置线程亲和性成功 4095
|
||||||
|
2024-04-25T16:41:01.956149Z INFO tswn: 开始: 0 结尾: 100000000
|
||||||
|
2024-04-25T16:41:01.956194Z INFO tswn: 线程数: 1
|
||||||
|
2024-04-25T16:41:01.956238Z INFO tswn: 八围预期: 640
|
||||||
|
2024-04-25T16:41:01.956281Z INFO tswn: 队伍名: shenjacks
|
||||||
|
2024-04-25T16:41:01.956324Z INFO tswn: 输出文件名: "./namerena/namerena-shenjacks-2024-04-26_00-41-01.txt"
|
||||||
|
2024-04-25T16:41:01.956368Z INFO tswn: 预期状态输出时间间隔: 10 秒
|
||||||
|
2024-04-25T16:41:01.956414Z INFO tswn: 是否启动 benchmark 模式: true
|
||||||
|
2024-04-25T16:41:01.956460Z INFO tswn: 开始 benchmark
|
||||||
|
2024-04-25T16:41:01.971405Z INFO tswn::cacluate: | 1|Id: 10000|671839.83/s 580.470E/d 0.01⬆️|0 |预计:0:2:28|
|
||||||
|
2024-04-25T16:41:11.993331Z INFO tswn::cacluate: | 1|Id: 6728390|670375.96/s 579.205E/d 10.02⬇️|0 |预计:0:2:19|
|
||||||
|
2024-04-25T16:41:21.985595Z INFO tswn::cacluate: | 1|Id: 13432140|670904.21/s 579.661E/d 9.99⬆️|0 |预计:0:2:9|
|
||||||
|
2024-04-25T16:41:32.000630Z INFO tswn::cacluate: | 1|Id: 20141180|669903.99/s 578.797E/d 10.01⬇️|0 |预计:0:1:59|
|
||||||
|
2024-04-25T16:41:41.977727Z INFO tswn::cacluate: | 1|Id: 26840210|671448.43/s 580.131E/d 9.98⬆️|0 |预计:0:1:48|
|
||||||
|
2024-04-25T16:41:51.971939Z INFO tswn::cacluate: | 1|Id: 33554690|671844.32/s 580.473E/d 9.99⬆️|0 |预计:0:1:38|
|
||||||
|
2024-04-25T16:42:01.998885Z INFO tswn::cacluate: | 1|Id: 40273130|670045.99/s 578.920E/d 10.03⬇️|0 |预计:0:1:29|
|
||||||
|
2024-04-25T16:42:11.987622Z INFO tswn::cacluate: | 1|Id: 46973580|670807.82/s 579.578E/d 9.99⬆️|0 |预计:0:1:19|
|
||||||
|
2024-04-25T16:42:21.991526Z INFO tswn::cacluate: | 1|Id: 53681650|670555.81/s 579.360E/d 10.00⬇️|0 |预计:0:1:9|
|
||||||
|
2024-04-25T16:42:31.964748Z INFO tswn::cacluate: | 1|Id: 60387200|672365.87/s 580.924E/d 9.97⬆️|0 |预计:0:0:58|
|
||||||
|
2024-04-25T16:42:41.948492Z INFO tswn::cacluate: | 1|Id: 67110850|673467.34/s 581.876E/d 9.98⬆️|0 |预计:0:0:48|
|
||||||
|
2024-04-25T16:42:51.961452Z INFO tswn::cacluate: | 1|Id: 73845520|672602.58/s 581.129E/d 10.01⬇️|0 |预计:0:0:38|
|
||||||
|
2024-04-25T16:43:01.963617Z INFO tswn::cacluate: | 1|Id: 80571540|672464.08/s 581.009E/d 10.00⬇️|0 |预计:0:0:28|
|
||||||
|
2024-04-25T16:43:11.971626Z INFO tswn::cacluate: | 1|Id: 87296180|671933.03/s 580.550E/d 10.01⬇️|0 |预计:0:0:18|
|
||||||
|
```
|
||||||
|
|
||||||
|
### 0.1.3
|
||||||
|
|
||||||
|
> 可算至少没有如升了
|
||||||
|
|
||||||
|
```text
|
||||||
|
❯ .\runs\tswn-013.exe --team shenjacks -q 5500 --end 100000000 --bench
|
||||||
|
2024-04-25T16:34:48.083060Z INFO tswn: 输出文件: "./namerena/namerena-shenjacks-2024-04-26_00-34-48.txt"
|
||||||
|
2024-04-25T16:34:48.083292Z INFO tswn: 设置线程亲和性成功 4095
|
||||||
|
2024-04-25T16:34:48.083349Z INFO tswn: 开始: 0 结尾: 100000000
|
||||||
|
2024-04-25T16:34:48.083397Z INFO tswn: 线程数: 1
|
||||||
|
2024-04-25T16:34:48.083441Z INFO tswn: 八围预期: 640
|
||||||
|
2024-04-25T16:34:48.083485Z INFO tswn: 队伍名: shenjacks
|
||||||
|
2024-04-25T16:34:48.083528Z INFO tswn: 输出文件名: "./namerena/namerena-shenjacks-2024-04-26_00-34-48.txt"
|
||||||
|
2024-04-25T16:34:48.083582Z INFO tswn: 预期状态输出时间间隔: 10 秒
|
||||||
|
2024-04-25T16:34:48.083630Z INFO tswn: 是否启动 benchmark 模式: true
|
||||||
|
2024-04-25T16:34:48.083675Z INFO tswn: 开始 benchmark
|
||||||
|
2024-04-25T16:34:48.098900Z INFO tswn::cacluate: | 1|Id: 10000|658761.53/s 569.170E/d 0.02⬆️|0 |预计:0:2:31|
|
||||||
|
2024-04-25T16:34:57.961474Z INFO tswn::cacluate: | 1|Id: 6597610|667946.59/s 577.106E/d 9.86⬆️|0 |预计:0:2:19|
|
||||||
|
2024-04-25T16:35:07.951406Z INFO tswn::cacluate: | 1|Id: 13277070|668626.78/s 577.694E/d 9.99⬆️|0 |预计:0:2:9|
|
||||||
|
2024-04-25T16:35:17.945802Z INFO tswn::cacluate: | 1|Id: 19963330|669008.84/s 578.024E/d 9.99⬆️|0 |预计:0:1:59|
|
||||||
|
2024-04-25T16:35:27.954792Z INFO tswn::cacluate: | 1|Id: 26653410|668414.35/s 577.510E/d 10.01⬇️|0 |预计:0:1:49|
|
||||||
|
2024-04-25T16:35:37.947746Z INFO tswn::cacluate: | 1|Id: 33337550|668892.23/s 577.923E/d 9.99⬆️|0 |预计:0:1:39|
|
||||||
|
2024-04-25T16:35:47.938790Z INFO tswn::cacluate: | 1|Id: 40026470|669498.85/s 578.447E/d 9.99⬆️|0 |预计:0:1:29|
|
||||||
|
2024-04-25T16:35:57.982945Z INFO tswn::cacluate: | 1|Id: 46721450|666561.93/s 575.910E/d 10.04⬇️|0 |预计:0:1:19|
|
||||||
|
2024-04-25T16:36:07.959973Z INFO tswn::cacluate: | 1|Id: 53387060|668105.84/s 577.243E/d 9.98⬆️|0 |预计:0:1:9|
|
||||||
|
2024-04-25T16:36:17.936227Z INFO tswn::cacluate: | 1|Id: 60068110|669702.86/s 578.623E/d 9.98⬆️|0 |预计:0:0:59|
|
||||||
|
2024-04-25T16:36:27.934845Z INFO tswn::cacluate: | 1|Id: 66765130|669801.76/s 578.709E/d 10.00⬆️|0 |预计:0:0:49|
|
||||||
|
```
|
||||||
|
|
||||||
|
### 0.1.2
|
||||||
|
|
||||||
|
> 咋到了这边就如改呢
|
||||||
|
|
||||||
|
```text
|
||||||
|
❯ .\runs\tswn-012.exe --team shenjacks -q 5500 --end 100000000 --bench
|
||||||
|
2024-04-25T16:29:10.751123Z INFO tswn: 输出文件: "./namerena/namerena-shenjacks-2024-04-26_00-29-10.txt"
|
||||||
|
2024-04-25T16:29:10.751340Z INFO tswn: 设置线程亲和性成功 4095
|
||||||
|
2024-04-25T16:29:10.751392Z INFO tswn: 开始: 0 结尾: 100000000
|
||||||
|
2024-04-25T16:29:10.751437Z INFO tswn: 线程数: 1
|
||||||
|
2024-04-25T16:29:10.751481Z INFO tswn: 八围预期: 640
|
||||||
|
2024-04-25T16:29:10.751525Z INFO tswn: 队伍名: shenjacks
|
||||||
|
2024-04-25T16:29:10.751569Z INFO tswn: 输出文件名: "./namerena/namerena-shenjacks-2024-04-26_00-29-10.txt"
|
||||||
|
2024-04-25T16:29:10.751616Z INFO tswn: 预期状态输出时间间隔: 10 秒
|
||||||
|
2024-04-25T16:29:10.751663Z INFO tswn: 是否启动 benchmark 模式: true
|
||||||
|
2024-04-25T16:29:10.751706Z INFO tswn: 开始 benchmark
|
||||||
|
2024-04-25T16:29:10.769613Z INFO tswn::cacluate: | 1|Id: 10000|559869.66/s 483.727E/d 0.02⬆️|0 |预计:0:2:58|
|
||||||
|
2024-04-25T16:29:20.792120Z INFO tswn::cacluate: | 1|Id: 5608690|558618.22/s 482.646E/d 10.02⬇️|0 |预计:0:2:48|
|
||||||
|
2024-04-25T16:29:30.783691Z INFO tswn::cacluate: | 1|Id: 11194870|559095.37/s 483.058E/d 9.99⬆️|0 |预计:0:2:38|
|
||||||
|
2024-04-25T16:29:40.782174Z INFO tswn::cacluate: | 1|Id: 16785820|559186.84/s 483.137E/d 10.00⬆️|0 |预计:0:2:28|
|
||||||
|
2024-04-25T16:29:50.778334Z INFO tswn::cacluate: | 1|Id: 22377680|559406.94/s 483.328E/d 10.00⬆️|0 |预计:0:2:18|
|
||||||
|
2024-04-25T16:30:00.784518Z INFO tswn::cacluate: | 1|Id: 27971740|559066.52/s 483.033E/d 10.01⬇️|0 |预计:0:2:8|
|
||||||
|
2024-04-25T16:30:10.782641Z INFO tswn::cacluate: | 1|Id: 33562400|559177.10/s 483.129E/d 10.00⬆️|0 |预计:0:1:58|
|
||||||
|
2024-04-25T16:30:20.780848Z INFO tswn::cacluate: | 1|Id: 39154170|559283.24/s 483.221E/d 10.00⬆️|0 |预计:0:1:48|
|
||||||
|
2024-04-25T16:30:30.780561Z INFO tswn::cacluate: | 1|Id: 44747000|559305.48/s 483.240E/d 10.00⬆️|0 |预计:0:1:38|
|
||||||
|
2024-04-25T16:30:40.788376Z INFO tswn::cacluate: | 1|Id: 50340050|558874.38/s 482.867E/d 10.01⬇️|0 |预计:0:1:28|
|
||||||
|
2024-04-25T16:30:50.781088Z INFO tswn::cacluate: | 1|Id: 55928790|559287.46/s 483.224E/d 9.99⬆️|0 |预计:0:1:18|
|
||||||
|
2024-04-25T16:31:00.787130Z INFO tswn::cacluate: | 1|Id: 61521660|558955.19/s 482.937E/d 10.01⬇️|0 |预计:0:1:8|
|
||||||
|
2024-04-25T16:31:10.774828Z INFO tswn::cacluate: | 1|Id: 67111210|559649.42/s 483.537E/d 9.99⬆️|0 |预计:0:0:58|
|
||||||
|
2024-04-25T16:31:20.780385Z INFO tswn::cacluate: | 1|Id: 72707700|559344.17/s 483.273E/d 10.01⬇️|0 |预计:0:0:48|
|
||||||
|
2024-04-25T16:31:30.789669Z INFO tswn::cacluate: | 1|Id: 78301140|558831.29/s 482.830E/d 10.01⬇️|0 |预计:0:0:38|
|
||||||
|
2024-04-25T16:31:40.769888Z INFO tswn::cacluate: | 1|Id: 83889450|559944.67/s 483.792E/d 9.98⬆️|0 |预计:0:0:28|
|
||||||
|
2024-04-25T16:31:50.780890Z INFO tswn::cacluate: | 1|Id: 89488890|559334.72/s 483.265E/d 10.01⬇️|0 |预计:0:0:18|
|
||||||
|
```
|
||||||
|
|
||||||
|
### 0.1.1
|
||||||
|
|
||||||
|
```text
|
||||||
|
❯ .\runs\tswn-011.exe --team shenjacks -q 5500 --end 100000000 --bench
|
||||||
|
2024-04-25T16:22:43.103952Z INFO tswn: 输出文件: "./namerena/namerena-shenjacks-2024-04-26_00-22-43.txt"
|
||||||
|
2024-04-25T16:22:43.104169Z INFO tswn: 设置线程亲和性成功 4095
|
||||||
|
2024-04-25T16:22:43.104223Z INFO tswn: 开始: 0 结尾: 100000000
|
||||||
|
2024-04-25T16:22:43.104270Z INFO tswn: 线程数: 1
|
||||||
|
2024-04-25T16:22:43.104313Z INFO tswn: 八围预期: 640
|
||||||
|
2024-04-25T16:22:43.104357Z INFO tswn: 队伍名: shenjacks
|
||||||
|
2024-04-25T16:22:43.104401Z INFO tswn: 输出文件名: "./namerena/namerena-shenjacks-2024-04-26_00-22-43.txt"
|
||||||
|
2024-04-25T16:22:43.104445Z INFO tswn: 预期状态输出时间间隔: 10 秒
|
||||||
|
2024-04-25T16:22:43.104494Z INFO tswn: 是否启动 benchmark 模式: true
|
||||||
|
2024-04-25T16:22:43.104539Z INFO tswn: 开始 benchmark
|
||||||
|
2024-04-25T16:22:43.122617Z INFO tswn::cacluate: | 1|Id: 10000|554545.05/s 479.127E/d 0.02⬆️|0 |预计:0:3:0|
|
||||||
|
2024-04-25T16:22:53.036437Z INFO tswn::cacluate: | 1|Id: 5555450|559371.31/s 483.297E/d 9.91⬆️|0 |预计:0:2:48|
|
||||||
|
2024-04-25T16:23:03.037739Z INFO tswn::cacluate: | 1|Id: 11149160|559304.37/s 483.239E/d 10.00⬇️|0 |预计:0:2:38|
|
||||||
|
2024-04-25T16:23:13.057818Z INFO tswn::cacluate: | 1|Id: 16742200|558189.62/s 482.276E/d 10.02⬇️|0 |预计:0:2:29|
|
||||||
|
2024-04-25T16:23:23.030494Z INFO tswn::cacluate: | 1|Id: 22324090|559724.72/s 483.602E/d 9.97⬆️|0 |预计:0:2:18|
|
||||||
|
2024-04-25T16:23:33.049657Z INFO tswn::cacluate: | 1|Id: 27921330|558661.02/s 482.683E/d 10.02⬇️|0 |预计:0:2:9|
|
||||||
|
2024-04-25T16:23:43.043393Z INFO tswn::cacluate: | 1|Id: 33507940|559017.44/s 482.991E/d 9.99⬆️|0 |预计:0:1:58|
|
||||||
|
2024-04-25T16:23:53.050200Z INFO tswn::cacluate: | 1|Id: 39098110|558643.05/s 482.668E/d 10.01⬇️|0 |预计:0:1:49|
|
||||||
|
2024-04-25T16:24:03.037297Z INFO tswn::cacluate: | 1|Id: 44684540|559371.02/s 483.297E/d 9.99⬆️|0 |预计:0:1:38|
|
||||||
|
2024-04-25T16:24:13.028762Z INFO tswn::cacluate: | 1|Id: 50278250|559855.15/s 483.715E/d 9.99⬆️|0 |预计:0:1:28|
|
||||||
|
```
|
@ -36,6 +36,11 @@ pub struct Command {
|
|||||||
/// 预期状态输出时间间隔 (秒)
|
/// 预期状态输出时间间隔 (秒)
|
||||||
#[arg(long, short = 'r', default_value_t = 10)]
|
#[arg(long, short = 'r', default_value_t = 10)]
|
||||||
pub report_interval: u64,
|
pub report_interval: u64,
|
||||||
|
/// 是否启动 benchmark 模式
|
||||||
|
///
|
||||||
|
/// Windows 下会强制单线程, 且设置线程亲和性为核心 0
|
||||||
|
#[arg(long = "bench", default_value_t = false)]
|
||||||
|
pub bench: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Command {
|
impl Command {
|
||||||
@ -60,7 +65,6 @@ fn main() {
|
|||||||
let left = cli_arg.start % cli_arg.thread_count as u64;
|
let left = cli_arg.start % cli_arg.thread_count as u64;
|
||||||
cli_arg.end = cli_arg.end.wrapping_add(left);
|
cli_arg.end = cli_arg.end.wrapping_add(left);
|
||||||
|
|
||||||
let mut n = 0;
|
|
||||||
let mut threads = Vec::with_capacity(cli_arg.thread_count as usize);
|
let mut threads = Vec::with_capacity(cli_arg.thread_count as usize);
|
||||||
let now = chrono::Local::now().format("%Y-%m-%d_%H-%M-%S").to_string();
|
let now = chrono::Local::now().format("%Y-%m-%d_%H-%M-%S").to_string();
|
||||||
// namerena-<team>-<time>.txt
|
// namerena-<team>-<time>.txt
|
||||||
@ -73,22 +77,46 @@ fn main() {
|
|||||||
warn!("创建文件夹失败: {}", e);
|
warn!("创建文件夹失败: {}", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if cli_arg.bench {
|
||||||
|
cli_arg.thread_count = 1;
|
||||||
|
#[cfg(windows)]
|
||||||
|
unsafe {
|
||||||
|
use windows_sys::Win32::System::Threading::{GetCurrentThread, SetThreadAffinityMask};
|
||||||
|
|
||||||
|
let thread_id = GetCurrentThread();
|
||||||
|
let core_mask = 0x02;
|
||||||
|
match SetThreadAffinityMask(thread_id, core_mask) {
|
||||||
|
0 => warn!("设置线程亲和性失败 {}", std::io::Error::last_os_error()),
|
||||||
|
x => info!("设置线程亲和性成功 {}", x),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
info!("开始: {} 结尾: {}", cli_arg.start, cli_arg.end);
|
info!("开始: {} 结尾: {}", cli_arg.start, cli_arg.end);
|
||||||
info!("线程数: {}", cli_arg.thread_count);
|
info!("线程数: {}", cli_arg.thread_count);
|
||||||
info!("八围预期: {}", cli_arg.prop_expect);
|
info!("八围预期: {}", cli_arg.prop_expect);
|
||||||
info!("队伍名: {}", cli_arg.team);
|
info!("队伍名: {}", cli_arg.team);
|
||||||
info!("输出文件名: {:?}", out_path);
|
info!("输出文件名: {:?}", out_path);
|
||||||
|
info!("预期状态输出时间间隔: {} 秒", cli_arg.report_interval);
|
||||||
|
info!("是否启动 benchmark 模式: {}", cli_arg.bench);
|
||||||
|
|
||||||
for i in 0..cli_arg.thread_count {
|
if cli_arg.bench {
|
||||||
n += 1;
|
info!("开始 benchmark");
|
||||||
let config = cli_arg.as_cacl_config();
|
let config = cli_arg.as_cacl_config();
|
||||||
let out_path = out_path.clone();
|
cacluate::cacl(config, 1, &out_path);
|
||||||
let thread_name = format!("thread_{}", i);
|
} else {
|
||||||
threads.push(std::thread::spawn(move || {
|
let mut n = 0;
|
||||||
info!("线程 {} 开始计算", thread_name);
|
for i in 0..cli_arg.thread_count {
|
||||||
cacluate::cacl(config, n, &out_path);
|
n += 1;
|
||||||
info!("线程 {} 结束计算", thread_name);
|
let config = cli_arg.as_cacl_config();
|
||||||
}));
|
let out_path = out_path.clone();
|
||||||
|
let thread_name = format!("thread_{}", i);
|
||||||
|
threads.push(std::thread::spawn(move || {
|
||||||
|
info!("线程 {} 开始计算", thread_name);
|
||||||
|
cacluate::cacl(config, n, &out_path);
|
||||||
|
info!("线程 {} 结束计算", thread_name);
|
||||||
|
}));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
info!("开始计算");
|
info!("开始计算");
|
||||||
|
|
||||||
|
@ -138,13 +138,15 @@ impl Namer {
|
|||||||
let b_name_len = name_len + 1;
|
let b_name_len = name_len + 1;
|
||||||
for _ in 0..2 {
|
for _ in 0..2 {
|
||||||
let mut s = 0_u8;
|
let mut s = 0_u8;
|
||||||
unsafe { val.swap_unchecked(s as usize, 0) };
|
unsafe {
|
||||||
let mut k = 0;
|
val.swap_unchecked(s as usize, 0);
|
||||||
for i in 0..256 {
|
let mut k = 0;
|
||||||
s = s.wrapping_add(if k == 0 { 0 } else { name_bytes[k - 1] });
|
for i in 0..256 {
|
||||||
s = s.wrapping_add(val[i]);
|
s = s.wrapping_add(if k == 0 { 0 } else { *name_bytes.get_unchecked(k - 1) });
|
||||||
unsafe { val.swap_unchecked(i, s as usize) }
|
s = s.wrapping_add(val[i]);
|
||||||
k = if k == b_name_len - 1 { 0 } else { k + 1 };
|
val.swap_unchecked(i, s as usize);
|
||||||
|
k = if k == b_name_len - 1 { 0 } else { k + 1 };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// simd 优化
|
// simd 优化
|
||||||
@ -158,25 +160,27 @@ impl Namer {
|
|||||||
|
|
||||||
for i in (0..256).step_by(64) {
|
for i in (0..256).step_by(64) {
|
||||||
// 一次性加载64个数字
|
// 一次性加载64个数字
|
||||||
let mut x = u8x64::from_slice(&simd_val[i..]);
|
let mut x = u8x64::from_slice(unsafe { simd_val.get_unchecked(i..) });
|
||||||
x = x * simd_181 + simd_160;
|
x = x * simd_181 + simd_160;
|
||||||
// 写入到 simd_val
|
// 写入到 simd_val
|
||||||
x.copy_to_slice(&mut simd_val[i..]);
|
unsafe {
|
||||||
|
x.copy_to_slice(simd_val.get_unchecked_mut(i..));
|
||||||
|
}
|
||||||
|
|
||||||
let y = x & simd_63;
|
let y = x & simd_63;
|
||||||
y.copy_to_slice(&mut simd_val_b[i..]);
|
unsafe {
|
||||||
|
y.copy_to_slice(simd_val_b.get_unchecked_mut(i..));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut mod_count = 0;
|
let mut mod_count = 0;
|
||||||
|
|
||||||
for i in 0..96 {
|
for i in 0..96 {
|
||||||
if simd_val[i] > 88 && simd_val[i] < 217 {
|
unsafe {
|
||||||
// name_base[mod_count as usize] = simd_val_b[i];
|
if simd_val.get_unchecked(i) > &88 && simd_val.get_unchecked(i) < &217 {
|
||||||
unsafe {
|
*name_base.get_unchecked_mut(mod_count as usize) = *simd_val_b.get_unchecked(i);
|
||||||
*name_base.get_unchecked_mut(mod_count as usize) =
|
mod_count += 1;
|
||||||
*simd_val_b.get_unchecked(i);
|
|
||||||
}
|
}
|
||||||
mod_count += 1;
|
|
||||||
}
|
}
|
||||||
if mod_count > 30 {
|
if mod_count > 30 {
|
||||||
break;
|
break;
|
||||||
@ -184,13 +188,11 @@ impl Namer {
|
|||||||
}
|
}
|
||||||
if mod_count < 31 {
|
if mod_count < 31 {
|
||||||
for i in 96..256 {
|
for i in 96..256 {
|
||||||
if simd_val[i] > 88 && simd_val[i] < 217 {
|
unsafe {
|
||||||
// name_base[mod_count as usize] = simd_val_b[i];
|
if simd_val.get_unchecked(i) > &88 && simd_val.get_unchecked(i) < &217 {
|
||||||
unsafe {
|
*name_base.get_unchecked_mut(mod_count as usize) = *simd_val_b.get_unchecked(i);
|
||||||
*name_base.get_unchecked_mut(mod_count as usize) =
|
mod_count += 1;
|
||||||
*simd_val_b.get_unchecked(i);
|
|
||||||
}
|
}
|
||||||
mod_count += 1;
|
|
||||||
}
|
}
|
||||||
if mod_count > 30 {
|
if mod_count > 30 {
|
||||||
break;
|
break;
|
||||||
@ -212,20 +214,31 @@ impl Namer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 计算 name_prop
|
// 计算 name_prop
|
||||||
let mut prop_name = name_base[0..32].to_vec();
|
// let mut prop_name = name_base[0..32].to_vec();
|
||||||
prop_name[0..10].sort_unstable();
|
// prop_name[0..10].sort_unstable();
|
||||||
name_prop[0] = 154
|
// name_prop[0] = 154
|
||||||
+ prop_name[3] as u32
|
// + prop_name[3] as u32
|
||||||
+ prop_name[4] as u32
|
// + prop_name[4] as u32
|
||||||
+ prop_name[5] as u32
|
// + prop_name[5] as u32
|
||||||
+ prop_name[6] as u32;
|
// + prop_name[6] as u32;
|
||||||
name_prop[1] = median(prop_name[10], prop_name[11], prop_name[12]) as u32 + 36;
|
// name_prop[1] = median(prop_name[10], prop_name[11], prop_name[12]) as u32 + 36;
|
||||||
name_prop[2] = median(prop_name[13], prop_name[14], prop_name[15]) as u32 + 36;
|
// name_prop[2] = median(prop_name[13], prop_name[14], prop_name[15]) as u32 + 36;
|
||||||
name_prop[3] = median(prop_name[16], prop_name[17], prop_name[18]) as u32 + 36;
|
// name_prop[3] = median(prop_name[16], prop_name[17], prop_name[18]) as u32 + 36;
|
||||||
name_prop[4] = median(prop_name[19], prop_name[20], prop_name[21]) as u32 + 36;
|
// name_prop[4] = median(prop_name[19], prop_name[20], prop_name[21]) as u32 + 36;
|
||||||
name_prop[5] = median(prop_name[22], prop_name[23], prop_name[24]) as u32 + 36;
|
// name_prop[5] = median(prop_name[22], prop_name[23], prop_name[24]) as u32 + 36;
|
||||||
name_prop[6] = median(prop_name[25], prop_name[26], prop_name[27]) as u32 + 36;
|
// name_prop[6] = median(prop_name[25], prop_name[26], prop_name[27]) as u32 + 36;
|
||||||
name_prop[7] = median(prop_name[28], prop_name[29], prop_name[30]) as u32 + 36;
|
// name_prop[7] = median(prop_name[28], prop_name[29], prop_name[30]) as u32 + 36;
|
||||||
|
// 疯狂的 unsafe 优化(确信
|
||||||
|
unsafe {
|
||||||
|
let mut prop_name = [0_u8; 32];
|
||||||
|
prop_name.copy_from_slice(name_base.get_unchecked(0..32));
|
||||||
|
prop_name.get_unchecked_mut(0..10).sort_unstable();
|
||||||
|
*name_prop.get_unchecked_mut(0) = 154
|
||||||
|
+ *prop_name.get_unchecked(3) as u32
|
||||||
|
+ *prop_name.get_unchecked(4) as u32
|
||||||
|
+ *prop_name.get_unchecked(5) as u32
|
||||||
|
+ *prop_name.get_unchecked(6) as u32
|
||||||
|
}
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
name: name.to_string(),
|
name: name.to_string(),
|
||||||
@ -242,7 +255,9 @@ impl Namer {
|
|||||||
pub fn update_skill(&mut self) {
|
pub fn update_skill(&mut self) {
|
||||||
let skill_id = self.skl_id.as_mut();
|
let skill_id = self.skl_id.as_mut();
|
||||||
for i in 0..40 {
|
for i in 0..40 {
|
||||||
skill_id[i] = i as u8
|
unsafe {
|
||||||
|
*skill_id.get_unchecked_mut(i) = i as u8;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "simd")]
|
#[cfg(feature = "simd")]
|
||||||
@ -257,19 +272,23 @@ impl Namer {
|
|||||||
let simd_32 = u8x64::splat(32);
|
let simd_32 = u8x64::splat(32);
|
||||||
|
|
||||||
for i in (0..256).step_by(64) {
|
for i in (0..256).step_by(64) {
|
||||||
let mut x = u8x64::from_slice(&simd_val[i..]);
|
unsafe {
|
||||||
let mut y = u8x64::from_slice(&simd_val_b[i..]);
|
let mut x = u8x64::from_slice(simd_val.get_unchecked(i..));
|
||||||
x = x * simd_181 + simd_199 & simd_128;
|
let mut y = u8x64::from_slice(simd_val_b.get_unchecked(i..));
|
||||||
y = y * simd_53 & simd_63 ^ simd_32;
|
x = x * simd_181 + simd_199 & simd_128;
|
||||||
x.copy_to_slice(&mut simd_val[i..]);
|
y = y * simd_53 & simd_63 ^ simd_32;
|
||||||
y.copy_to_slice(&mut simd_val_b[i..]);
|
x.copy_to_slice(simd_val.get_unchecked_mut(i..));
|
||||||
|
y.copy_to_slice(simd_val_b.get_unchecked_mut(i..));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut mod_count = 0;
|
let mut mod_count = 0;
|
||||||
for i in 0..256 {
|
for i in 0..256 {
|
||||||
if simd_val[i] != 0 {
|
unsafe {
|
||||||
self.name_base[mod_count as usize] = simd_val_b[i];
|
if simd_val.get_unchecked(i) != &0 {
|
||||||
mod_count += 1;
|
*self.name_base.get_unchecked_mut(mod_count as usize) = *simd_val_b.get_unchecked(i);
|
||||||
|
mod_count += 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// const int N = 256, M = 128, K = 64, skill_cnt = 40, max_len = 25;
|
// const int N = 256, M = 128, K = 64, skill_cnt = 40, max_len = 25;
|
||||||
@ -278,32 +297,38 @@ impl Namer {
|
|||||||
let mut s: u8 = 0;
|
let mut s: u8 = 0;
|
||||||
for _ in 0..2 {
|
for _ in 0..2 {
|
||||||
for i in 0..40 {
|
for i in 0..40 {
|
||||||
let rnd = {
|
let rnd = unsafe {
|
||||||
a += 1;
|
a += 1;
|
||||||
b = b.wrapping_add(self.val[a as usize]);
|
b = b.wrapping_add(*self.val.get_unchecked(a as usize));
|
||||||
self.val.swap(a as usize, b as usize);
|
self.val.swap_unchecked(a as usize, b as usize);
|
||||||
let u: u8 = self.val[((self.val[a as usize] as u16
|
let u: u8 = *self.val.get_unchecked(
|
||||||
+ self.val[b as usize] as u16)
|
((*self.val.get_unchecked(a as usize) as u16 + *self.val.get_unchecked(b as usize) as u16) & 255)
|
||||||
& 255) as usize];
|
as usize,
|
||||||
|
);
|
||||||
a += 1;
|
a += 1;
|
||||||
b = b.wrapping_add(self.val[a as usize]);
|
b = b.wrapping_add(*self.val.get_unchecked(a as usize));
|
||||||
self.val.swap(a as usize, b as usize);
|
self.val.swap_unchecked(a as usize, b as usize);
|
||||||
let t = self.val[((self.val[a as usize] as u16
|
let t: u8 = *self.val.get_unchecked(
|
||||||
+ self.val[b as usize] as u16)
|
((*self.val.get_unchecked(a as usize) as u16 + *self.val.get_unchecked(b as usize) as u16) & 255)
|
||||||
& 255) as usize];
|
as usize,
|
||||||
|
);
|
||||||
(((u as u32) << 8 | t as u32) % 40) as u8
|
(((u as u32) << 8 | t as u32) % 40) as u8
|
||||||
};
|
};
|
||||||
s = (s as u16 + rnd as u16 + skill_id[i] as u16) as u8 % 40;
|
unsafe {
|
||||||
skill_id.swap(i as usize, s as usize);
|
s = (s as u16 + rnd as u16 + *skill_id.get_unchecked(i as usize) as u16) as u8 % 40;
|
||||||
|
skill_id.swap_unchecked(i as usize, s as usize);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let mut last = -1;
|
let mut last = -1;
|
||||||
let mut j = 0;
|
let mut j = 0;
|
||||||
for i in (64..128).step_by(4) {
|
for i in (64..128).step_by(4) {
|
||||||
let p = min(
|
let p = unsafe {
|
||||||
min(self.name_base[i + 0], self.name_base[i + 1]),
|
min(
|
||||||
min(self.name_base[i + 2], self.name_base[i + 3]),
|
min(*self.name_base.get_unchecked(i + 0), *self.name_base.get_unchecked(i + 1)),
|
||||||
);
|
min(*self.name_base.get_unchecked(i + 2), *self.name_base.get_unchecked(i + 3)),
|
||||||
|
)
|
||||||
|
};
|
||||||
if p > 10 && skill_id[j] < 35 {
|
if p > 10 && skill_id[j] < 35 {
|
||||||
self.skl_freq[j] = p - 10;
|
self.skl_freq[j] = p - 10;
|
||||||
if skill_id[j] < 25 {
|
if skill_id[j] < 25 {
|
||||||
@ -319,12 +344,10 @@ impl Namer {
|
|||||||
// *= 2
|
// *= 2
|
||||||
}
|
}
|
||||||
if (self.skl_freq[14] != 0) && (last != 14) {
|
if (self.skl_freq[14] != 0) && (last != 14) {
|
||||||
self.skl_freq[14] +=
|
self.skl_freq[14] += min(min(self.name_base[60], self.name_base[61]), self.skl_freq[14]);
|
||||||
min(min(self.name_base[60], self.name_base[61]), self.skl_freq[14]);
|
|
||||||
}
|
}
|
||||||
if (self.skl_freq[15] != 0) && (last != 15) {
|
if (self.skl_freq[15] != 0) && (last != 15) {
|
||||||
self.skl_freq[15] +=
|
self.skl_freq[15] += min(min(self.name_base[62], self.name_base[63]), self.skl_freq[15]);
|
||||||
min(min(self.name_base[62], self.name_base[63]), self.skl_freq[15]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -395,10 +418,9 @@ impl Namer {
|
|||||||
let skills = {
|
let skills = {
|
||||||
let mut base = "".to_string();
|
let mut base = "".to_string();
|
||||||
let skill_names = [
|
let skill_names = [
|
||||||
"火球", "冰冻", "雷击", "地裂", "吸血", "投毒", "连击", "会心", "瘟疫", "命轮",
|
"火球", "冰冻", "雷击", "地裂", "吸血", "投毒", "连击", "会心", "瘟疫", "命轮", "狂暴", "魅惑", "加速", "减速",
|
||||||
"狂暴", "魅惑", "加速", "减速", "诅咒", "治愈", "苏生", "净化", "铁壁", "蓄力",
|
"诅咒", "治愈", "苏生", "净化", "铁壁", "蓄力", "聚气", "潜行", "血祭", "分身", "幻术", "防御", "守护", "反弹",
|
||||||
"聚气", "潜行", "血祭", "分身", "幻术", "防御", "守护", "反弹", "护符", "护盾",
|
"护符", "护盾", "反击", "吞噬", "亡灵", "垂死", "隐匿", "啧", "啧", "啧", "啧", "啧",
|
||||||
"反击", "吞噬", "亡灵", "垂死", "隐匿", "啧", "啧", "啧", "啧", "啧",
|
|
||||||
];
|
];
|
||||||
// 后处理
|
// 后处理
|
||||||
let mut skills = [0; 40];
|
let mut skills = [0; 40];
|
||||||
@ -445,20 +467,16 @@ mod test {
|
|||||||
let namer = Namer::new_from_team_namer_unchecked(&team, "x");
|
let namer = Namer::new_from_team_namer_unchecked(&team, "x");
|
||||||
|
|
||||||
let val_vec: Vec<u8> = vec![
|
let val_vec: Vec<u8> = vec![
|
||||||
225, 96, 49, 232, 20, 47, 115, 245, 234, 23, 111, 178, 231, 100, 118, 197, 42, 98, 137,
|
225, 96, 49, 232, 20, 47, 115, 245, 234, 23, 111, 178, 231, 100, 118, 197, 42, 98, 137, 196, 209, 86, 114, 184, 167,
|
||||||
196, 209, 86, 114, 184, 167, 129, 164, 239, 205, 211, 82, 173, 189, 153, 198, 67, 4, 3,
|
129, 164, 239, 205, 211, 82, 173, 189, 153, 198, 67, 4, 3, 90, 52, 128, 134, 176, 145, 85, 9, 250, 30, 63, 247, 240,
|
||||||
90, 52, 128, 134, 176, 145, 85, 9, 250, 30, 63, 247, 240, 17, 215, 200, 78, 188, 132,
|
17, 215, 200, 78, 188, 132, 117, 10, 45, 162, 79, 123, 73, 109, 91, 57, 210, 22, 175, 107, 203, 103, 32, 83, 70, 242,
|
||||||
117, 10, 45, 162, 79, 123, 73, 109, 91, 57, 210, 22, 175, 107, 203, 103, 32, 83, 70,
|
75, 220, 140, 148, 15, 138, 44, 228, 43, 105, 199, 99, 116, 97, 69, 80, 172, 230, 25, 224, 33, 31, 135, 235, 74, 193,
|
||||||
242, 75, 220, 140, 148, 15, 138, 44, 228, 43, 105, 199, 99, 116, 97, 69, 80, 172, 230,
|
238, 233, 88, 216, 204, 24, 163, 141, 6, 201, 26, 38, 21, 186, 237, 101, 206, 212, 76, 144, 219, 149, 169, 202, 110,
|
||||||
25, 224, 33, 31, 135, 235, 74, 193, 238, 233, 88, 216, 204, 24, 163, 141, 6, 201, 26,
|
41, 166, 139, 194, 168, 34, 142, 147, 187, 108, 223, 94, 5, 243, 226, 60, 40, 102, 51, 87, 61, 236, 46, 159, 64, 227,
|
||||||
38, 21, 186, 237, 101, 206, 212, 76, 144, 219, 149, 169, 202, 110, 41, 166, 139, 194,
|
113, 190, 81, 127, 65, 8, 183, 253, 150, 249, 229, 37, 156, 182, 180, 246, 124, 244, 174, 122, 89, 120, 160, 35, 143,
|
||||||
168, 34, 142, 147, 187, 108, 223, 94, 5, 243, 226, 60, 40, 102, 51, 87, 61, 236, 46,
|
11, 14, 151, 133, 27, 177, 251, 221, 207, 58, 29, 131, 119, 171, 157, 93, 185, 48, 112, 192, 191, 66, 106, 39, 59,
|
||||||
159, 64, 227, 113, 190, 81, 127, 65, 8, 183, 253, 150, 249, 229, 37, 156, 182, 180,
|
92, 19, 1, 155, 254, 84, 222, 165, 54, 121, 13, 50, 36, 130, 95, 161, 213, 170, 28, 241, 71, 53, 68, 218, 0, 252, 16,
|
||||||
246, 124, 244, 174, 122, 89, 120, 160, 35, 143, 11, 14, 151, 133, 27, 177, 251, 221,
|
136, 179, 158, 248, 2, 154, 12, 125, 126, 255, 18, 146, 104, 77, 152, 208, 214, 72, 55, 195, 62, 7, 217, 56, 181,
|
||||||
207, 58, 29, 131, 119, 171, 157, 93, 185, 48, 112, 192, 191, 66, 106, 39, 59, 92, 19,
|
|
||||||
1, 155, 254, 84, 222, 165, 54, 121, 13, 50, 36, 130, 95, 161, 213, 170, 28, 241, 71,
|
|
||||||
53, 68, 218, 0, 252, 16, 136, 179, 158, 248, 2, 154, 12, 125, 126, 255, 18, 146, 104,
|
|
||||||
77, 152, 208, 214, 72, 55, 195, 62, 7, 217, 56, 181,
|
|
||||||
];
|
];
|
||||||
assert_eq!(namer.val.to_vec(), val_vec);
|
assert_eq!(namer.val.to_vec(), val_vec);
|
||||||
}
|
}
|
||||||
@ -468,19 +486,17 @@ mod test {
|
|||||||
let team = TeamNamer::new_unchecked("x");
|
let team = TeamNamer::new_unchecked("x");
|
||||||
let mut namer = Namer::new_from_team_namer_unchecked(&team, "x");
|
let mut namer = Namer::new_from_team_namer_unchecked(&team, "x");
|
||||||
let base_name_vec: Vec<u8> = vec![
|
let base_name_vec: Vec<u8> = vec![
|
||||||
53, 0, 40, 4, 58, 61, 37, 46, 56, 51, 21, 20, 27, 17, 15, 26, 13, 30, 52, 63, 36, 30,
|
53, 0, 40, 4, 58, 61, 37, 46, 56, 51, 21, 20, 27, 17, 15, 26, 13, 30, 52, 63, 36, 30, 57, 34, 22, 37, 35, 6, 12, 25,
|
||||||
57, 34, 22, 37, 35, 6, 12, 25, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
];
|
];
|
||||||
let full_base_name_vec: Vec<u8> = vec![
|
let full_base_name_vec: Vec<u8> = vec![
|
||||||
53, 0, 40, 4, 58, 61, 37, 46, 56, 51, 21, 20, 27, 17, 15, 26, 13, 30, 52, 63, 36, 30,
|
53, 0, 40, 4, 58, 61, 37, 46, 56, 51, 21, 20, 27, 17, 15, 26, 13, 30, 52, 63, 36, 30, 57, 34, 22, 37, 35, 6, 12, 25,
|
||||||
57, 34, 22, 37, 35, 6, 12, 25, 50, 49, 59, 23, 49, 27, 51, 58, 39, 28, 60, 20, 31, 36,
|
50, 49, 59, 23, 49, 27, 51, 58, 39, 28, 60, 20, 31, 36, 41, 11, 7, 29, 24, 24, 61, 62, 57, 4, 28, 48, 55, 50, 38, 29,
|
||||||
41, 11, 7, 29, 24, 24, 61, 62, 57, 4, 28, 48, 55, 50, 38, 29, 10, 40, 42, 15, 23, 47,
|
10, 40, 42, 15, 23, 47, 42, 62, 47, 1, 60, 5, 43, 21, 1, 46, 45, 9, 9, 14, 38, 13, 56, 0, 31, 59, 39, 6, 35, 41, 55,
|
||||||
42, 62, 47, 1, 60, 5, 43, 21, 1, 46, 45, 9, 9, 14, 38, 13, 56, 0, 31, 59, 39, 6, 35,
|
5, 34, 3, 7, 33, 33, 45, 16, 16, 32, 43, 18, 44, 22, 14, 17, 10, 11, 53, 18, 44, 19, 52, 2, 32, 12, 8, 2, 54, 26, 48,
|
||||||
41, 55, 5, 34, 3, 7, 33, 33, 45, 16, 16, 32, 43, 18, 44, 22, 14, 17, 10, 11, 53, 18,
|
8, 3, 63, 54, 19, 25,
|
||||||
44, 19, 52, 2, 32, 12, 8, 2, 54, 26, 48, 8, 3, 63, 54, 19, 25,
|
|
||||||
];
|
];
|
||||||
assert_eq!(namer.name_base.to_vec(), base_name_vec);
|
assert_eq!(namer.name_base.to_vec(), base_name_vec);
|
||||||
namer.update_skill();
|
namer.update_skill();
|
||||||
@ -496,8 +512,8 @@ mod test {
|
|||||||
|
|
||||||
namer.update_skill();
|
namer.update_skill();
|
||||||
let skill_prop_vec: Vec<u8> = vec![
|
let skill_prop_vec: Vec<u8> = vec![
|
||||||
13, 0, 0, 0, 0, 0, 0, 0, 6, 8, 0, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
13, 0, 0, 0, 0, 0, 0, 0, 6, 8, 0, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0,
|
||||||
];
|
];
|
||||||
assert_eq!(namer.skl_freq.to_vec(), skill_prop_vec);
|
assert_eq!(namer.skl_freq.to_vec(), skill_prop_vec);
|
||||||
}
|
}
|
||||||
@ -509,8 +525,8 @@ mod test {
|
|||||||
|
|
||||||
namer.update_skill();
|
namer.update_skill();
|
||||||
let skill_id_vec: Vec<u8> = vec![
|
let skill_id_vec: Vec<u8> = vec![
|
||||||
9, 13, 12, 38, 4, 27, 26, 15, 16, 32, 24, 5, 7, 21, 18, 10, 37, 2, 6, 20, 39, 1, 14, 3,
|
9, 13, 12, 38, 4, 27, 26, 15, 16, 32, 24, 5, 7, 21, 18, 10, 37, 2, 6, 20, 39, 1, 14, 3, 11, 29, 22, 33, 19, 0, 30,
|
||||||
11, 29, 22, 33, 19, 0, 30, 31, 17, 28, 34, 35, 23, 8, 25, 36,
|
31, 17, 28, 34, 35, 23, 8, 25, 36,
|
||||||
];
|
];
|
||||||
assert_eq!(namer.skl_id.to_vec(), skill_id_vec);
|
assert_eq!(namer.skl_id.to_vec(), skill_id_vec);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
|
|
||||||
pub struct Player {
|
pub struct Player {
|
||||||
team: String,
|
team: String,
|
||||||
name: String,
|
name: String,
|
||||||
weapon: String,
|
weapon: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,20 +2,17 @@
|
|||||||
macro_rules! val {
|
macro_rules! val {
|
||||||
() => {
|
() => {
|
||||||
[
|
[
|
||||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
||||||
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
|
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
|
||||||
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
|
61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
|
||||||
68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
|
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
|
||||||
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
|
115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
|
||||||
109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
|
138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
|
||||||
126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
|
161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
|
||||||
143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
|
184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
|
||||||
160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
|
207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
|
||||||
177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
|
230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
|
||||||
194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
|
253, 254, 255,
|
||||||
211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
|
|
||||||
228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
|
|
||||||
245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
|
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
19
news.md
Normal file
19
news.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# 各种"新闻"
|
||||||
|
|
||||||
|
## tswn
|
||||||
|
|
||||||
|
### 0.1.3
|
||||||
|
|
||||||
|
> 550E/d
|
||||||
|
|
||||||
|
夸张, 比 0.1.1 快了 100E/d
|
||||||
|
|
||||||
|
### 0.1.2
|
||||||
|
|
||||||
|
优化了一些边界检查, 反正就是没用
|
||||||
|
`445E/d -> 478E/d`
|
||||||
|
参考 bench/tswn.md
|
||||||
|
|
||||||
|
### 0.1.1
|
||||||
|
|
||||||
|
随手发一版
|
@ -83,10 +83,7 @@ impl WebDriverRunner {
|
|||||||
|
|
||||||
done_target.wait_until().has_attribute("done", "true").await?;
|
done_target.wait_until().has_attribute("done", "true").await?;
|
||||||
|
|
||||||
let win_data = self
|
let win_data = self.driver.execute("return arguments[0].win_data", vec![done_target.to_json()?]).await?;
|
||||||
.driver
|
|
||||||
.execute("return arguments[0].win_data", vec![done_target.to_json()?])
|
|
||||||
.await?;
|
|
||||||
let win_data: WinData = serde_json::from_value(win_data.json().to_owned())?;
|
let win_data: WinData = serde_json::from_value(win_data.json().to_owned())?;
|
||||||
Ok(win_data)
|
Ok(win_data)
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
# cargo fmt config
|
# cargo fmt config
|
||||||
|
|
||||||
# 最大行长
|
# 最大行长
|
||||||
max_width = 100
|
max_width = 130
|
||||||
# 链式调用的最大长度
|
# 链式调用的最大长度
|
||||||
chain_width = 80
|
chain_width = 90
|
||||||
# 数组的最大长度
|
# 数组的最大长度
|
||||||
array_width = 70
|
array_width = 80
|
||||||
# 函数参数的最大长度
|
# 函数参数的最大长度
|
||||||
attr_fn_like_width = 60
|
attr_fn_like_width = 60
|
||||||
# 函数调用参数的最大长度
|
# 函数调用参数的最大长度
|
||||||
|
@ -69,11 +69,7 @@ async fn execute_gpu(numbers: &[u32]) -> Option<Vec<u32>> {
|
|||||||
execute_gpu_inner(&device, &queue, numbers).await
|
execute_gpu_inner(&device, &queue, numbers).await
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn execute_gpu_inner(
|
async fn execute_gpu_inner(device: &wgpu::Device, queue: &wgpu::Queue, numbers: &[u32]) -> Option<Vec<u32>> {
|
||||||
device: &wgpu::Device,
|
|
||||||
queue: &wgpu::Queue,
|
|
||||||
numbers: &[u32],
|
|
||||||
) -> Option<Vec<u32>> {
|
|
||||||
// Loads the shader from WGSL
|
// Loads the shader from WGSL
|
||||||
let cs_module = device.create_shader_module(wgpu::ShaderModuleDescriptor {
|
let cs_module = device.create_shader_module(wgpu::ShaderModuleDescriptor {
|
||||||
label: None,
|
label: None,
|
||||||
@ -135,8 +131,7 @@ async fn execute_gpu_inner(
|
|||||||
|
|
||||||
// A command encoder executes one or many pipelines.
|
// A command encoder executes one or many pipelines.
|
||||||
// It is to WebGPU what a command buffer is to Vulkan.
|
// It is to WebGPU what a command buffer is to Vulkan.
|
||||||
let mut encoder =
|
let mut encoder = device.create_command_encoder(&wgpu::CommandEncoderDescriptor { label: None });
|
||||||
device.create_command_encoder(&wgpu::CommandEncoderDescriptor { label: None });
|
|
||||||
{
|
{
|
||||||
let mut cpass = encoder.begin_compute_pass(&wgpu::ComputePassDescriptor {
|
let mut cpass = encoder.begin_compute_pass(&wgpu::ComputePassDescriptor {
|
||||||
label: None,
|
label: None,
|
||||||
|
Loading…
Reference in New Issue
Block a user