iTunes: Still Slowing Down Windows PCs After All These Years
colinneagle sends this quote from an article at NetworkWorld:
"I run a very nifty desktop utility called Rainmeter on my PC that I heartily recommend to anyone who wants to keep an eye on their system. One of its main features is it has skins that can monitor your system activity. Thanks to my numerous meters, I see all CPU, disk, memory and network activity in real time. the C: drive meter. It is a circle split down the middle, with the right half lighting up to indicate a read and the left half lighting up for write activity. The C: drive was flashing a fair amount of activity considering I had nothing loaded save Outlook and Word, plus a few background apps. At the time, I didn't have a Rainmeter skin that lists the top processes by CPU and memory. So instead, I went into the Task Manager, and under Performance selected the Resource Monitor. Under the Processes tab, the culprit showed its face immediately: AppleMobileDeviceService.exe. It was consuming a ridiculous amount of threads and CPU cycles. The only way to turn it off is to go into Windows Services and turn off the service. There's just one problem. I use an iPhone. I can't disable it. But doing so for a little while dropped the CPU meters to nothing. So I now have more motivation to migrate to a new phone beyond just having one with a larger screen. This problem has been known for years. AppleMobileDeviceService.exe has been in iTunes since version 7.3. People complained on the Apple boards more than two years ago that it was consuming up to 50% of CPU cycles, and thus far it's as bad as it always has been. Mind you, Mac users aren't complaining. Just Windows users."
I hate how these companies seem to think that they can take over my machine; HP seems to think that all I do is print. Office seems to think that I type all day. AV software usually seems to think that all I do is want to hunt viruses. iTunes seems to think that I just screw with my iPad/iPhone all day. BlackBerry violates your machine. Java seems to think that it should check for an upgrade 100% of the time.
The last few updates from Apple have this hidden MRT process that goes made for hours after the upgrade. But the MRT gives no hint that it is installing, and no hint that it is running. Your machine grinds to a halt so you slowly bring up the list of active services and find that it is using all your CPU and that of your neighbor plus so much memory that it is worse than the viruses that it is hunting.
I wish that people would have an OS that has a simple sandbox keeping software installation tools from installing whatever they want. Then when I run Office or iTunes or even my AV it will then run. When I shut it down it will stop. The same for drivers. When I go to print it should run the driver and then go away.
But another critical tool that could be created right now would be to have an activity monitor that differentiates vital services from crap from Acer or HP. With this tool you would bring up a list of services running and not only kill them now but disable them for all time. No more kill the service only to have some daemon pop it back up seconds later. I don't want to go digging through any config/startup/hidden file nonsense.
But on the flip, Microsoft's hardware abstraction layer is a terrible, horrible, implimentation that makes every access from userspace terribly expensive.
And worse? Some of the documentation specifically says they want it that way! On purpose!
Citation needed.
Windows actually has a rather sophisticated driver model which allows many drivers to be implemented in user mode or at least be divided so that big parts can run in user mode. This improves both stability and security. A relevant type of drivers in this context is bus drivers, specifically bus drivers for USB. These drivers will discover new devices on the USB bus *regardless* of their make, capability etc. The bus driver til inform *your* driver when a device arrives. No need to scan or poll for devices. If you do it right you can just sit there and wait to be informed. No need to poll, no need to even tie up a thread in waiting state.
That is all in the documentation:
Types of WDM Drivers
Function drivers
An example
So which part of the documentation did you read?
Everytime I have to work with HAL I'm filled with a strong urge to strip all my clothes off, burn them, then take a cold shower while shivering up in the corner, scrubbing my skin raw, chanting "must...wash...away...the sin..."
Maybe you should find another line of work?
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*