Emulateurs iOS 6 lents sur Xcode 5 + Mavericks
Smy
Membre
Bonjour
Juste une petite info pour vous éviter de vous arracher les cheveux, les émulateurs iOS 6.x sur Xcode 5.0.1 et Maverics ont un comportement anormalement lent. Pas de problème avec l'émulateur iOS 7.
Il y a plusieurs posts à ce sujet sur les forums développeurs Apple ou même sur stackoverflow...
J'ai passé un petit moment hier à essayer de trouver l'origine d'un problème de NSTimer sur iOS 6 avant de me rendre compte que c'était l'émulateur.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
C'est le cas sous ML aussi ? Car mes TableView scrollent hyper lentement sur le simu... Et j'ai plus de devices en iOS6 (fais ch....)
Je ne l'avais pas remarqué avec Xcode 5.0 sur ML, tu es en 5.0 ou 5.0.1 ?
5.0...
Par contre j'ai remarqué que Xcode mettais + de temps à lancer mon appli sur device connecté en USB qu'avant. Je ne sais pas si c'est lié au passage iOS6 -> iOS7 de mon device ou au passage Xcode4 -> Xcode5.
J'ai trouvé un moyen super simple pour le reproduire en 30 secondes :
- Créer un nouveau projet à partir du template iOS/Single View Application
- Définir le iOS Deployment Target à iOS 6.0
- Modifier le ViewController.m pour ajouter dans viewDidLoad un timer à 50ms :
- Ajouter dans cette même classe le handleTimer :
- Lancer sur simulateur iOS 6.1 et iOS 7.0
Chez moi, pas de problème en iOS 7, j'ai bien un log toutes les 50 ms. En iOS 6.1, c'est très erratique, avec du 50, 70, 80, 100ms.
Le tout sur un MBA Core i5 1,7 GHz / 4 Go de RAM avec uniquement Xcode, donc assez de puissance...
En effet j'observe la même chose de mon côté, avec le simu 6.0 (j'ai pas dl le 6.1) c'est plus variable.
Mais ça ne me choque pas outre mesure. Utiliser des NSTimer, dont " comme tout mécanisme de timer ou de pause type sleep ou autre " les délais demandés n'ont jamais été garanti mais toujours du Best Effort (surtout en environnement MT).
Déjà il faudrait mieux utiliser des instruments de Time Profiling. En plus, il faudrait surtout faire le même test sur 2 devices réels, donc 2 iPhones de même modèle, mais l'un sous iOS6 l'autre sous iOS7. Car vu toute la refonte qui a été faite sur iOS7, au niveau performances en particulier, c'est peut-être le système iOS lui-même qui est plus véloce depuis sa version iOS7 ?
C'est pour l'exemple. Je l'ai remarqué avec un vrai projet
Tout fonctionne parfaitement sur les terminaux/toutes les versions d'iOS (y compris sur iPhone 3GS en iOS 4.3). C'est vraiment lié au simulateur iOS 6 sur Mavericks, je n'avais pas du tout le même comportement la semaine dernière sur Mountain Lion.
J'ai ouvert un Bug Report, on verra bien.
Je n'ai pas testé sur la 5.0.2 GM d'aujourd'hui, mais il n'y a rien dans le change log à ce sujet...