Guest User

Untitled

a guest
Jul 19th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. # Trying to replicate performance issues with DM 1.0
  2. # DM 0.10.2 -> 1.230000 0.110000 1.340000 ( 2.535200)
  3. # DM 1.0.2 -> 3.080000 0.190000 3.270000 ( 4.842546)
  4. #
  5. require 'rubygems'
  6. require 'dm-core'
  7. require 'dm-migrations'
  8. require 'dm-migrations/migration_runner'
  9. require 'dm-timestamps'
  10. require 'benchmark'
  11.  
  12. #DataMapper::Logger.new($stdout, :debug)
  13. DataMapper.setup(:default, 'postgres://localhost/dm_perf_test') # createdb test
  14.  
  15. class Course
  16. include DataMapper::Resource
  17.  
  18. property :id, Serial
  19. property :name, String
  20.  
  21. has n, :exams
  22. end
  23.  
  24. class Exam
  25. include DataMapper::Resource
  26. property :id, Serial
  27. property :course_id, Serial
  28.  
  29. belongs_to :course
  30. end
  31.  
  32.  
  33.  
  34. DataMapper::MigrationRunner.migration( 1, :create_courses ) do
  35. up do
  36. create_table :courses do
  37. column :id, Integer, :serial => true
  38. column :name, String, :size => 50
  39. end
  40.  
  41. create_index(:courses, :id)
  42.  
  43. create_table :exams do
  44. column :id, Integer, :serial => true
  45. column :course_id, Integer
  46. end
  47. create_index(:exams, :id)
  48. create_index(:exams, :course_id)
  49. end
  50. down do
  51. drop_table :exams
  52. drop_table :courses
  53. end
  54. end
  55.  
  56. DataMapper::MigrationRunner.migrate_up!
  57.  
  58. timing = Benchmark.measure do
  59. 1000.times do |i|
  60. course = Course.create(:name =>"Ruby #{i}")
  61. Exam.create(:course => course)
  62. end
  63. end
  64.  
  65. puts timing
Add Comment
Please, Sign In to add comment