My machine at work has recently been updated to Windows 10, from Windows 7, and it has become incredibly slow. The IT has installed a bunch of new tools for security and protection after the upgrade but they are saying the problem is not with their tools. I have been trying to figure out what is going on. I am not the only engineer who has having this problem and almost all Windows 10 users are experiencing this issue.
I started monitoring some of the installed programs using API Monitor and I have noticed that any system call related to disk I/O is taking a really long time to return. I capture a run of the application and then parse the summary and try to find the hottest API calls.
I monitored the program that I myself am developing and the following API calls take around 70% of the total time:
_wopen
CreateFileA
fgets
ReadFile
I assumed it might be a disk related issue but in safe mode everything works as expected and feels snappy. I tested the same app in safe mode and the above API calls are still the hottest calls but they barely make 5% of the total running time. This makes me believe the problem is not disk but rather some other installed service on my machine that monitors all disk I/O related API calls and makes my machine so slow. However I don't know which application is interfering with the API calls.
How can I find why a specific API call is taking so much time? Can I step into windows kernel and debug this issue?
I hope this is the right place for this post.
strace
for Linux. It times every syscall. Now, what I am trying to figure out is why these windows API calls are slow. I am experiencing the same issue with all programs and not just my custom program.