इसकी गहराई में जाने पर, ऐसा लगता है कि यह comments
. से हटाना है सरणी जिसमें बहुत लंबा समय लगता है। हटाए गए रिकॉर्ड्स को फिर सरणी से हटा दिया जाता है यहां
।
इसे एक बड़े सरणी के साथ सिम्युलेट करते हुए, हमें वही धीमा व्यवहार मिलता है:
1.9.3-p194 :001 > require 'benchmark'; require 'ostruct'
=> true
1.9.3-p194 :002 > i = 0; a = []
=> []
1.9.3-p194 :003 > 35_000.times { i+=1; a << OpenStruct.new(value: i) }
=> 35000
1.9.3-p194 :004 > puts Benchmark.measure { a.each { |i| a.delete(i) } }
623.560000 0.820000 624.380000 (625.244664)
ActiveRecord को संभवतः Array#clear
. करने के लिए अनुकूलित किया जा सकता है destroy_all
. के मामले में ...