64bit | 32bit | ||
nolock | 0.790571s | 1.04586s | (結果は当然おかしい) |
atomic | 0.808765s | 1.03325s | |
TSX(asm) | 0.963602s | ||
TSX(intrin) | 0.944928s | 1.13442s | |
mutex(TSX) | 1.02248s | ||
__transaction_atomic | 1.36938s | 1.78498s | |
mutex | 1.62795s | 1.6446s |
サンプルが簡単なので atomic operation でいける問題なので、
atomic operation が最強なのは当然として、 pthread_mutex_t が
十分速いので、これで良い気がする
__transaction_atomic はなぜか遅い。 libitm のコードをざっと読んだ感じ、x86-64 だと RTM を使わない気がする。が、少しいじって無理矢理使わせてみても速度が変わらない…