2010-09-10 18 views
2

Dans the following SO question, il est mentionné que le Garage Collector n'était pas inclus dans iOS afin d'économiser l'énergie de la batterie.Existe-t-il une référence officielle indiquant que l'autonomie de la batterie est l'une des raisons pour lesquelles un Garbage Collector n'est pas inclus dans iOS?

Existe-t-il une référence officielle d'Apple indiquant que l'autonomie de la batterie est l'une des raisons pour lesquelles un Garbage Collector n'est pas inclus dans iOS? Je l'ai cherché sur google mais je n'ai pas réussi à trouver quelque chose de pertinent.

Répondre

2

... que l'autonomie de la batterie est l'une des raisons pour lesquelles un Garbage Collector n'était pas inclus dans iOS?

  • je qualifierais que ce soit bon PR ou fanboyism agressif. Un bon GC ajoute peu de frais généraux, en particulier aucun montant de frais généraux ne devrait être concerné. Le problème est que Apple n'a pas un bon garbage collector.

  • le garbage collector de Objective-C est conservatrice et ne fait pas le compactage, ce qui signifie que les applications seront fuite de mémoire au fil du temps et si vous avez une application de longue durée sur votre téléphone, il finira par manger toute la mémoire disponible et crash. En fait, c'est la raison pour laquelle Apple recommande de ne pas l'utiliser pour des tâches de longue durée, même sur Mac OS X.

+0

Vous avez tout à fait raison. Le garbage collector pour ObjC est très difficile à comprendre et a quelques problèmes, en particulier dans le code mixte (ObjC et C). En fait, je l'ai désactivé sur mon application OSX car cela a conduit à des problèmes très étranges (mais facilement reproductibles). –

0

Il y a certainement aussi un problème majeur avec des performances imprévisibles sur tous les périphériques de ressources limitées. Un collègue et le mien ont été embauchés par Intel pour le lancement de Pentim 3 afin de créer de super trucs d'interface utilisateur qui présentaient la puissance IMPRESSIONNANTE de ce processeur afin que tout le monde puisse le mettre à niveau. Pour une raison quelconque, il a été décidé qu'une interface 3D basée sur Java pour le moteur de recherche Excite était la solution ultime. Les planètes avec des lunes représenteraient des pages de résultats et des résultats de recherche individuels. Des trucs d'âge spatial. C'était évidemment avant le grand internett ka-blam quand les gens avaient beaucoup trop d'argent et une grande vision d'un cyber-monde 3D. Eh bien, le garbageman a toujours surgi au mauvais moment et souvent, alors nous avons fait ce que nous devions faire à l'époque et demander une tonne de mémoire et écrire nos propres trucs d'attribution. Le client n'avait aucune tolérance pour GFX jumpy.

Cela a fait l'affaire, sale comme il peut sembler aujourd'hui. Je maintiens que la décision d'Apple a le plus à voir avec peu de mémoire disponible et que l'on souhaite une vitesse optimale dans les applications et les jeux. Ce n'est pas le genre de gens qui sont heureux avec les gens qui vont "argh, maintenant il est à la traîne." Je vous réfère à la récente hooplah autour de 4.x étant chien lent sur certains appareils. La nouvelle mise à jour a remplacé certaines fonctionnalités par des compromis.