hi, miq developers
I am using darga branch of miq, I find the initialization of dynamic fields of dialog is very slow. I read the code and find this:
def init_fields_with_values(values)
dialog_field_hash.each do |key, field|
values[key] = field.value
field.dialog = self
end
dialog_field_hash.each { |key, field| values[key] = field.initialize_with_values(values) }
dialog_field_hash.each { |_key, field| field.update_values(values) }
end
So field.initialize_with_values is called in serial. Is it passible to run this in parallel. If this, I think it will speed a lot.
I try to speed this by multi-thread, but it doesn’t work
def init_fields_with_values(values)
dialog_field_hash.each do |key, field|
values[key] = field.value
field.dialog = self
end
dialog_initialize_threads = []
dialog_field_hash.each do |key, field|
t = Thread.new do
values[key] = field.initialize_with_values(values)
end
dialog_initialize_threads << t
end
dialog_initialize_threads.each do |t|
t.join
end
dialog_field_hash.each { |_key, field| field.update_values(values) }
end
The process will just hang.