bbfsdev / bbfs

Big brother file system (distributed file system)
14 stars 5 forks source link

Issue260 diff performance #263

Closed genadyp closed 10 years ago

genadyp commented 10 years ago

connected to #260


Tests ContentData specifications: basic ContentData methods on 350_000 instances

NOTE the results are not exact cause they do not run in a clean environment and influenced from monitoring/testing code, but they give a good approximation Supposition: monitoring code penalty is insignificant against time/memory usage of the tested code


Was found that ConntentData cloning is extremely expensive operation

Init one object 350000 instances in less then 300 seconds: finished in 5 seconds Init one object clone of 350000 in less then 300 seconds: finished in 59 seconds Init more then one object two object of 350000 instances each in less then 600 seconds: finished in 9 seconds Init more then one object three object of 350000 instances each in less then 900 seconds: finished in 15 seconds Init more then one object three object of 350000 instances each in less then 900 seconds: finished in 15 seconds

then minus of two ContentData objects was re-written without using cloning


Was found that performance of Ruby2.1.1 is much better than Ruby1.9.3

$ rvm current ruby-1.9.3-p327 $ rspec -fd spec/content_data/content_data_performance_spec.rb ..... minus of two objects with 350000 instances each finish in less then 300 seconds: do not finished in 300 seconds

$ rvm current ruby-2.1.1 $ rspec -fd spec/content_data/content_data_performance_spec.rb ...... minus of two objects with 350000 instances each finish in less then 300 seconds: finished in 25 seconds

Then it is highly recommended to move to Ruby2.1.1 With Ruby1.9.3 we still remain above 10 minutes for minus operation

genadyp commented 10 years ago

Yes, rspec is running now with tag command line parameter that determine whether to run performance specs.

Performance tests tagged with ':tag => true' tag.