diff options
author | Wayne Meissner <wmeissner@gmail.com> | 2012-09-15 21:53:35 +1000 |
---|---|---|
committer | Wayne Meissner <wmeissner@gmail.com> | 2012-09-15 21:53:35 +1000 |
commit | 8369af3faca8db8e7a3ba19567f314c94de4a8e7 (patch) | |
tree | ed487279892434bba6aa17e85f19853599401aea | |
parent | 1030a2ccecea7b80a4be8a15f6ef324535c04c1c (diff) | |
download | ffi-8369af3faca8db8e7a3ba19567f314c94de4a8e7.tar.gz |
Unroll some benchmark loops
-rw-r--r-- | bench/bench_enum.rb | 4 | ||||
-rw-r--r-- | bench/bench_struct_field.rb | 25 |
2 files changed, 22 insertions, 7 deletions
diff --git a/bench/bench_enum.rb b/bench/bench_enum.rb index ec28922..d4ebf56 100644 --- a/bench/bench_enum.rb +++ b/bench/bench_enum.rb @@ -4,8 +4,8 @@ module LibTest extend FFI::Library ffi_lib LIBTEST_PATH enum :foo, [ :a, :b, :c ] - attach_function :ffi_bench, :bench_s32_v, [ :foo ], :void, :save_errno => true - attach_function :ffi_bench_i, :bench_s32_v, [ :int ], :void, :save_errno => true + attach_function :ffi_bench, :bench_s32_v, [ :foo ], :void, :save_errno => false + attach_function :ffi_bench_i, :bench_s32_v, [ :int ], :void, :save_errno => false def self.rb_bench(i0); nil; end end diff --git a/bench/bench_struct_field.rb b/bench/bench_struct_field.rb index 0e6faf4..45ec7be 100644 --- a/bench/bench_struct_field.rb +++ b/bench/bench_struct_field.rb @@ -12,7 +12,10 @@ s = TestStruct.new(FFI::MemoryPointer.new(TestStruct)) puts "Benchmark FFI Struct.get(:int) performance, #{iter}x" 10.times { puts Benchmark.measure { - i = 0; while i < iter + i = 0; max = iter / 4; while i < max + s[:i] + s[:i] + s[:i] s[:i] i += 1 end @@ -22,7 +25,10 @@ puts "Benchmark FFI Struct.get(:int) performance, #{iter}x" puts "Benchmark FFI Struct.get(:int) using string name performance, #{iter}x" 10.times { puts Benchmark.measure { - i = 0; while i < iter + i = 0; max = iter / 4; while i < max + s['i'] + s['i'] + s['i'] s['i'] i += 1 end @@ -32,7 +38,10 @@ puts "Benchmark FFI Struct.get(:int) using string name performance, #{iter}x" puts "Benchmark FFI Struct.put(:int) performance, #{iter}x" 10.times { puts Benchmark.measure { - i = 0; while i < iter + i = 0; max = iter / 4; while i < max + s[:i] = 0x12345678 + s[:i] = 0x12345678 + s[:i] = 0x12345678 s[:i] = 0x12345678 i += 1 end @@ -41,7 +50,10 @@ puts "Benchmark FFI Struct.put(:int) performance, #{iter}x" puts "Benchmark FFI Struct.get(:pointer) performance, #{iter}x" 10.times { puts Benchmark.measure { - i = 0; while i < iter + i = 0; max = iter / 4; while i < max + s[:p] + s[:p] + s[:p] s[:p] i += 1 end @@ -51,7 +63,10 @@ puts "Benchmark FFI Struct.put(:pointer) performance, #{iter}x" 10.times { p = FFI::MemoryPointer.new :int puts Benchmark.measure { - i = 0; while i < iter + i = 0; max = iter / 4; while i < max + s[:p] = p + s[:p] = p + s[:p] = p s[:p] = p i += 1 end |