Guest User

Untitled

a guest
May 2nd, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. require "test/unit"
  2.  
  3. require 'rubygems'
  4. require 'mysql'
  5.  
  6. require 'thread'
  7.  
  8. DBC = {
  9. :username => 'perf_test',
  10. :password => 'perf_test',
  11. :host => '127.0.0.1',
  12. :db => 'perf_test'
  13. }
  14.  
  15. class PerfTest < Test::Unit::TestCase
  16. NTEST=2
  17. SQL_STMT = "select sleep(1) from dual"
  18.  
  19. def test_threads
  20. timer = Time.now
  21. NTEST.times { execute_query }
  22. puts "Time to query #{NTEST} serially: #{Time.now - timer}"
  23.  
  24. threads = []
  25. timer = Time.now
  26. NTEST.times { threads << Thread.new {execute_query } }
  27. threads.collect{|t| t.value}
  28. puts "Time to query #{NTEST} multi threaded: #{Time.now - timer}"
  29. end
  30.  
  31. def execute_query
  32. conn = Mysql.new(DBC[:host], DBC[:username], DBC[:password], DBC[:db], 3306, nil, nil)
  33. res = conn.query(SQL_STMT)
  34. res = conn.query(SQL_STMT)
  35. while (row =res.fetch_row)
  36. row
  37. end
  38. res.free
  39. conn.close
  40. end
  41.  
  42.  
  43. end
Add Comment
Please, Sign In to add comment