-
러스트 수학 속도비교(glam, cgmath, nalgebra, euclid, vek,pathfinder, static-math, ultra..코딩Coding/Rust❤️Optimization❤️ 2022. 10. 20. 00:24728x90
glam cgmath nalgebra euclid vek
pathfinder static-math ultraviolet
https://github.com/elsuizo/static-math/with the following results:
benchmark glam cgmath nalgebra euclid vek pathfinder static-math ultraviolet euler 2d x10000 16.23 us 16.13 us 9.954 us 16.18 us 16.2 us 10.42 us 9.97 us 16.17 us euler 3d x10000 15.95 us 32.11 us 32.13 us 32.13 us 32.13 us 16.27 us 32.16 us 32.11 us matrix2 determinant 2.0386 ns 2.0999 ns 2.1018 ns N/A 2.0997 ns 2.0987 ns 2.0962 ns 2.1080 ns matrix2 inverse 2.8226 ns 8.4418 ns 7.6303 ns N/A N/A 3.3459 ns 9.4636 ns 5.8796 ns matrix2 mul matrix2 2.6036 ns 5.0007 ns 4.8172 ns N/A 9.3814 ns 2.5516 ns 4.7274 ns 4.9428 ns matrix2 mul vector2 x1 2.4904 ns 2.6144 ns 2.8714 ns N/A 4.2139 ns 2.0839 ns 2.8873 ns 2.6250 ns matrix2 mul vector2 x100 227.5271 ns 243.3579 ns 265.1698 ns N/A 400.6940 ns 219.7127 ns 267.8780 ns 243.9880 ns matrix2 return self 2.4235 ns 2.8841 ns 2.8756 ns N/A 2.8754 ns 2.4147 ns 2.8717 ns 2.8697 ns matrix2 transpose 2.2887 ns 3.0645 ns 7.9154 ns N/A 2.9635 ns N/A 3.0637 ns 3.0652 ns matrix3 determinant 3.9129 ns 3.8107 ns 3.8191 ns N/A 3.8180 ns N/A 3.8151 ns 8.9368 ns matrix3 inverse 17.5373 ns 18.6931 ns 12.3183 ns N/A N/A N/A 12.8195 ns 21.9098 ns matrix3 mul matrix3 9.9578 ns 13.3648 ns 7.8154 ns N/A 35.5802 ns N/A 6.4938 ns 10.0527 ns matrix3 mul vector3 x1 4.8090 ns 4.9339 ns 4.5046 ns N/A 12.5518 ns N/A 4.8002 ns 4.8118 ns matrix3 mul vector3 x100 0.4836 us 0.4808 us 0.4755 us N/A 1.247 us N/A 0.4816 us 0.4755 us matrix3 return self 5.4421 ns 5.4469 ns 5.4526 ns N/A 5.4656 ns N/A 5.4718 ns 5.4043 ns matrix3 transpose 9.9567 ns 10.0794 ns 10.9704 ns N/A 9.9257 ns N/A 10.7350 ns 10.5334 ns matrix4 determinant 6.2050 ns 11.1041 ns 69.2549 ns 17.1809 ns 18.5233 ns N/A 16.5331 ns 8.2704 ns matrix4 inverse 16.4386 ns 47.0674 ns 71.8174 ns 64.1356 ns 284.3703 ns N/A 52.6993 ns 41.1780 ns matrix4 mul matrix4 7.7715 ns 26.7308 ns 8.6500 ns 10.4414 ns 86.1501 ns N/A 21.7985 ns 26.8056 ns matrix4 mul vector4 x1 3.0303 ns 7.7400 ns 3.4091 ns N/A 21.0968 ns N/A 6.2971 ns 6.2537 ns matrix4 mul vector4 x100 0.6136 us 0.9676 us 0.627 us N/A 2.167 us N/A 0.7893 us 0.8013 us matrix4 return self 7.1741 ns 6.8838 ns 7.5030 ns N/A 7.0410 ns N/A 6.7768 ns 6.9508 ns matrix4 transpose 6.6826 ns 12.4966 ns 15.3265 ns N/A 12.6386 ns N/A 15.2657 ns 12.3396 ns ray-sphere intersection x10000 56.2 us 55.7 us 15.32 us 55.45 us 56.02 us N/A N/A 50.94 us rotation3 inverse 2.3113 ns 3.1752 ns 3.3292 ns 3.3311 ns 3.1808 ns N/A 8.7109 ns 3.6535 ns rotation3 mul rotation3 3.6584 ns 7.5255 ns 7.4808 ns 8.1393 ns 14.1636 ns N/A 6.8044 ns 7.6386 ns rotation3 mul vector3 x1 6.4950 ns 7.6808 ns 7.5784 ns 7.5746 ns 18.2547 ns N/A 7.2727 ns 8.9732 ns rotation3 mul vector3 x100 0.6465 us 0.7844 us 0.7573 us 0.7533 us 1.769 us N/A 0.7317 us 0.9416 us rotation3 return self 2.4928 ns 2.8740 ns 2.8687 ns N/A 2.8724 ns N/A 4.7868 ns 2.8722 ns transform point2 x1 2.7854 ns 2.8878 ns 4.4207 ns 2.8667 ns 11.9427 ns 2.3601 ns N/A 4.1770 ns transform point2 x100 0.3316 us 0.3574 us 0.4445 us 0.3008 us 1.212 us 0.3184 us N/A 0.4332 us transform point3 x1 2.9619 ns 10.6812 ns 6.1037 ns 7.7051 ns 13.2607 ns 3.0934 ns N/A 6.8419 ns transform point3 x100 0.6095 us 1.27 us 0.8064 us 0.7674 us 1.446 us 0.6189 us N/A 0.8899 us transform vector2 x1 2.4944 ns N/A 3.7174 ns 2.6273 ns 11.9424 ns N/A N/A 3.0458 ns transform vector2 x100 0.3125 us N/A 0.3871 us 0.2817 us 1.213 us N/A N/A 0.3649 us transform vector3 x1 2.8091 ns 7.7343 ns 5.5064 ns 4.4810 ns 15.4097 ns N/A N/A 4.8819 ns transform vector3 x100 0.6035 us 0.9439 us 0.7573 us 0.6327 us 1.63 us N/A N/A 0.6703 us transform2 inverse 9.0256 ns N/A 12.2614 ns 9.4803 ns N/A 8.9047 ns N/A N/A transform2 mul transform2 4.5111 ns N/A 8.1434 ns 5.8677 ns N/A 3.8513 ns N/A N/A transform2 return self 4.1707 ns N/A 5.4356 ns 4.2775 ns N/A 4.1117 ns N/A N/A transform3 inverse 10.9869 ns N/A 71.4437 ns 56.0136 ns N/A 23.0392 ns N/A N/A transform3 mul transform3d 6.5903 ns N/A 8.5673 ns 10.1802 ns N/A 7.6587 ns N/A N/A transform3 return self 7.1828 ns N/A 7.2619 ns 7.2407 ns N/A 7.3214 ns N/A N/A vector3 cross 2.4257 ns 3.6842 ns 3.7945 ns 3.6821 ns 3.8323 ns N/A 3.8622 ns 3.6927 ns vector3 dot 2.1055 ns 2.3179 ns 2.3174 ns 2.3190 ns 2.3195 ns N/A 2.3204 ns 2.3160 ns vector3 length 2.5020 ns 2.5002 ns 2.5986 ns 2.5013 ns 2.5021 ns N/A 2.5036 ns 2.5017 ns vector3 normalize 4.0454 ns 5.8411 ns 8.4069 ns 8.0679 ns 8.8137 ns N/A N/A 5.8440 ns vector3 return self 2.4087 ns 3.1021 ns 3.1061 ns N/A 3.1052 ns N/A 3.1136 ns 3.1071 ns 출처
https://github.com/elsuizo/static-math/
반응형'코딩Coding > Rust❤️Optimization❤️' 카테고리의 다른 글
디자인 패턴design-patters❤(한글판)들은 소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대한 일반적인 해결책 (0) 2022.11.17 Rust파일 쪼개고 소스코드 나눠서 효률적으로 (Division)유지보수하기 Managing a Growing Project (0) 2022.11.16 Rust Before Main 최적화로 용량 줄이기?- Ryan Levick - Rust Linz, July 2022 (0) 2022.10.30 cargo bench보다 좋은거? gnuplot & plotters (0) 2022.10.20 cargo size ❤️사용법_LLVM tools shipped with the Rust toolchain (0) 2022.09.29 Rust 1.66 nightly 기능❤️Box::assume_init 성능향상 기능 (0) 2022.09.26 How much expensive is Arc vs Rc? Arc의 Cost는 얼마나 많은 Cost를 지불하는지 에 대한 논문 (0) 2022.09.25 Rust❤️Impl trait initiative❤️eBook (0) 2022.09.23