A robot is significantly slower when Device Automation Service (DAS) is running on Windows 8.1 or 10 (or corresponding server versions) compared to Windows 7.
Additionally, it's possible that the robot using DAS running on Windows 8.1 or 10 (or corresponding server versions) will not be able to identify some elements (e.g. window, popup etc) that can be identified if the DAS runs on Windows 7.
Kapow v10.2.0.3 to v10.3.0.0 included a patch to fix an issue observeed with Universal Windows Platform (UWP) apps also known as Metro-style apps on Windows 8.1 and Windows 10. While looping (enumerating) the open applications on a Windows desktop (which is done five times per second), the traditional method would skip those applications.
With this patch the robots use a method provided by the Microsoft UI Automation API that includes the Metro- style apps, but also has two adverse effects:
- In general this method consumes more CPU and takes longer, and since the Device Automation Service (DAS) is single threaded, it leads to performance degradation across all installations.
- For specific applications, at least in one instance we have seen this method leading to 100% CPU usage for both the DAS (the node.exe process) and the application itself (the application did not even have to be maximized; it just had to be running).
For versions 10.2.0.3 to 10.3.0.0 there is a method of switching back to the original enumeration algorithm by setting the environment variable
Follow these steps to add this environment variable:
- Stop DAS (right click on the DAS system tray icon and select the option from the context menu)
- Open Task Manager and make sure there are no node.exe processes running (stop them, if there are any)
- In Task Manager, stop all DeviceAutomationServiceControl.exe. This is very important because this process is the DAS Controller (includes the sys tray icon). When DAS is started, the Controller is getting its environment variables from the system and the Device Automation Service is getting its variables from the Controller. So for a new environment variable to be used in DAS, the Controller has to be restarted too.
- Set the Environment variable.
- Restart Device Automation Service (from Start > Programs, it will restart both the system tray app and node.exe).
If this environment variable is added, the performance of DAS running on Windows 8.1 and 10 will improve and Metro-style apps will not be automated.
Kapow v10.3.0.1 improves a few minor performance issues from the previous version and reverts back to using the original enumeration method as default.
Therefore, in v10.3.0.1 and later there should be no performance problems between Windows 8.1 or 10 and Windows 7 but the Metro-style apps will not be automated by default.
If Metro-style apps need to be automated, this will require setting the environment variable
The steps to set this variable are the same as above.
If this variable is set, please be aware this can lead to performance degradation.
Keywords: Kapow Device Automation, DAS, performance, Kapow, Robotic Process Automation