Dynamic modify material parameter

1.Using dynamic material instance
2.Using material parameter collection

Which solution is more efficient?

There’s no point in comparing them in that way, because their purpose is not the same.

Dynamic instance is created so you can change parameters at runtime.

Parameter collection is a way of sharing parameters between multiple materials.

If you want to change a parameter on multiple materials simultaneously, you can change the parameter in the collection, but I don’t really think it would make any difference unless you have thousands of materials.