Last active
October 18, 2016 14:01
-
-
Save arcbbb/634323d2295a4beab1c080e0dc7bc2af to your computer and use it in GitHub Desktop.
Test result
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $ g++ count_bits.cpp -o count_bits -std=c++0x -O3 && ./count_bits | |
| count_directly : sum=7998296000, duration=5202343000 ns | |
| count_by_table : sum=7998296000, duration=3551468000 ns | |
| count_by_table8 : sum=7998296000, duration=2642850000 ns | |
| count_by_table8_unroll: sum=7998296000, duration=2241039000 ns | |
| count_by_bit_operation: sum=7998296000, duration=1354588000 ns | |
| Illegal instruction (core dumped) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $ ./count_bits | |
| count_directly : sum=7998963000, duration=5146620000 ns | |
| count_by_table : sum=7998963000, duration=3310482000 ns | |
| count_by_table8 : sum=7998963000, duration=2604540000 ns | |
| count_by_table8_unroll: sum=7998963000, duration=2201238000 ns | |
| count_by_bit_operation: sum=7998963000, duration=1283315000 ns | |
| Illegal instruction (core dumped) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $ ./count_bits | |
| count_directly : sum=7998690000, duration=2729333699 ns | |
| count_by_table : sum=7998690000, duration=2275479572 ns | |
| count_by_table8 : sum=7998690000, duration=1637013926 ns | |
| count_by_table8_unroll: sum=7998690000, duration=1408708337 ns | |
| count_by_bit_operation: sum=7998690000, duration=916563330 ns | |
| Illegal instruction: 4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $ ./count_bits | |
| count_directly : sum=7998810000, duration=4240582988 ns | |
| count_by_table : sum=7998810000, duration=1652749888 ns | |
| count_by_table8 : sum=7998810000, duration=1517876331 ns | |
| count_by_table8_unroll: sum=7998810000, duration=1249412431 ns | |
| count_by_bit_operation: sum=7998810000, duration=616427661 ns | |
| count_by_popcnt : sum=7998810000, duration=152035489 ns |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
$ clang++ count_bits.cpp -o count_bits -std=c++0x -O3 && ./count_bits
count_directly : sum=7999933000, duration=1944625795 ns
count_by_table : sum=7999933000, duration=918990731 ns
count_by_table8 : sum=7999933000, duration=1312130976 ns
count_by_table8_unroll: sum=7999933000, duration=899993115 ns
count_by_bit_operation: sum=7999933000, duration=596765475 ns
count_by_popcnt : sum=7999933000, duration=99913738 ns