Yes, the GUI will always add some weight. The complexity of the client will determine how much weight. As an example a terminal emulator on top of Winsock. The added overhead of the processing from Winsock to a Telnet representation in a terminal emulator os very low. With a Java Application you have the GUI and all of the application code is running inside of the Java VM. That adds a reasonable amount of overhead even for non complex client applications for all of the Java Items which have to be thunked to the native OS for resource access or GUI representation. Citrix and RDP are designed to be really thin layers, so their overhead is generally very small, unless you wind up on an overloaded Citrix/terminal Server node which should be rebalanced. For me, I try to move to the lightest weight virtual user possible, because this provides the cleanest view of the server performance without the introduction of client bound code. Where that is not possible, you have to move up the stack to drive the application. As noted above, "Java Record ReplaY" wasn't working to pick up the stream. This could be related to versions, environment, that nothing Java protocol specific was used in communication to the hosts, a lot of possible reasons. So your options are to debug and find the right protocol or move up the stack to drive the GUI.