In Process Plugins
This is the simplest execution mode, and the default if a mode is not set. An in-process plugin is loaded into and executed inside the main WPEFraemwork process.
Advantages
- Simple - there is no additional overhead or complexity from running additional processes
- Highest performance - no additional RPC hops are required to communicate with the plugin. All calls to the plugin from the Thunder process are just local virtual function calls.
- If an in-process plugin needs to communicate with another in-process plugin, Thunder will resolve any COM-RPC interface calls to local function calls. This removes the need to serialise/deserialise any data or cross any IPC boundary and results in the fastest performance possible
Disadvantages
- Stability - if a plugin is unstable or buggy and causes a crash then it will bring down the entire Thunder process
- Resource monitoring - since the plugin runs inside the Thunder process, it is much harder to accurately monitor the CPU/memory usage from that specific plugin
- Security - the plugin runs with the same permissions and privileges as the main Thunder process