That being said, the last time I used iTunes on Windows it was about as enjoybable as waiting for a Java Applet to load up.
That being said, the last time I used iTunes on Windows it was about as enjoybable as waiting for a Java Applet to load up.
It gives me the beachball anytime I do anything involving I/O (syncing, adding songs, retrieving album art, calculating gapless bullshit). That's bad UI programming. Do your I/O in a background thread.
I know it's doing it on the GUI thread because I'll command-tab to it and it won't redraw, which of course prevents me from cancelling out of whatever task-I-didn't-ask-for it's doing.
This, btw, is the same behaviour I hated on windows.
Managing iPhone, changing tabs, 5 seconds of beachball.
Go to iTunes store, 23 seconds of frozen app.
Trying to see if I have new podcasts while downloading music: 12 seconds of beachball.
If you EVER see a beachball on a Mac then either your hardware is failing or your application's programmer has failed. Your programmer should NEVER do an operation that can block and make the user interface unresponsive in the user interface thread. Ever.Beachball aside, why does it take 100 billion cpu clock cycles to switch from one tab to another?
Because 90% of those cycles are spent in other processes while your kernel is waiting for your blocking I/O to finish, and 5% or more of the rest are taken by the kernel to let other tasks run. </pedantic>