코딩Coding/Rust❤️Optimization❤️
러스트 수학 속도비교(glam, cgmath, nalgebra, euclid, vek,pathfinder, static-math, ultra..
내인생PLUS
2022. 10. 20. 00:24
728x90
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/
반응형