# Simulator Efficiency versus Algorithm Efficiency

I have a question about the simulator efficiency. I am reading a group key exchange protocol which is UC-Secure (the security is proven on universal composability framework of Canetti). The proof uses some kind of oracle called non-information oracle (which is provided for countering the adaptive adversary). This oracle is simply the proposed algorithm itself except the signing operations. The simulator must invoke $n$ copies of these oracles to simulate the interactions, and thus it is quite an inefficient simulator; because it is doing the same algorithm $n$ times for all dummy parties (each party in the ideal world of UC is called a dummy party, because it only relays or generates some inputs and gets the required output from functionality).

Question 1: If I improve the simulator, does it mean that I have achieved a better result? If the current inefficient simulator suffices, does it have any meaning to redefine the simulator in a more modular way to reduce the simulation time?

BTW, I am partially aware of meaning of the Knowledge Tightness, but I am not sure of my understanding.

Question 2: If I change some parts of the proposed algorithm to make my simulator more efficient and the proof of security more modular, but add (some) slight communication complexity to the resulting algorithm, how can I determine that my changes are an enhancement to the protocol? (I mean, how can I assume this trade off as an advantage?)