ToDo:
glibc の strlen の実装が賢い感じだなーと気付いたので、 herumi さんの実装と比べてみた。
https://github.com/herumi/opti/blob/master/strlen_sse42.cpp
Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz + gcc-4.7.3 ave 2.00 5.04 7.03 9.95 12.03 16.35 20.04 33.08 66.62 132.98 261.78 518.13 1063.83 strlenLIBC 9.46 4.22 3.34 2.70 2.41 1.94 1.71 0.98 0.41 0.24 0.16 0.12 0.10 strlenC 14.73 7.01 5.34 4.10 3.61 2.99 2.68 2.13 1.70 1.50 1.39 1.34 1.31 strlenSSE2 12.43 5.91 4.53 3.41 2.88 2.12 1.74 1.06 0.58 0.35 0.25 0.19 0.16 strlenSSE42 11.76 4.87 3.83 3.16 2.90 2.52 2.18 1.30 0.65 0.42 0.31 0.25 0.22 strlenSSE42_C 12.22 5.06 3.99 3.26 2.98 2.56 2.25 1.32 0.66 0.43 0.32 0.26 0.22
うーん SSE 4.2 より速い。そして AVX 使ったらこの glibc の方法はもっと速くできるんだよなーたぶん
(01:24)
前 | 2013年 9月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
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 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。