We have a Win32 application being delivered via Citrix that is accessible from both internal corporate LAN and external internet facing locations. We are seeing some behavior I wouldn't expect though. There are some processes that get run that are CPU and I/O intensive. When those run, the application basically throws up a progress spinner. No other information is changing on the screen. When we run the application in the corporate LAN, one particular process takes 4 minutes, the exact same process on the same data takes 15 from the internet. Backend system utilization stats look very similar between the two runs. Could Citrix somehow be scaling back the amount of resources devoted to the app when the ICA connection is constrained?
If the application uses display double-buffering, yes the performance can be quite poor over RDP/Citrix. Even though you think that refreshes are not occurring, there could be truckloads of bitmaps being sent unexpectedly. A packet capture would reveal that there is more activity than should be occurring.
This may be exacerbated by a code defect that is blocking when it should not be, and other network issues such as an MTU mismatch or Large Send Offload enabled.