In reply to likewind:
The DPI should give you the best performance. Of course there will always be exceptions to these guidelines depending on how you reference model was originally written and what might be needed to adapt it into either mechanism.
The SystemVerilog Direct Programming Interface (DPI) was created to provide the most efficient way for C and SystemVerilog models to communicate with each other.
Using $system to execute a binary might be the simplest, but communication would have to go through file I/O channels.