Quelle est la taille d'une application iPhone Objective-C par rapport à une application MonoTouch?

StackOverflow https://stackoverflow.com/questions/1444777

Question

J'envisage d'utiliser MonoTouch pour le développement d'un iPhone, mais la taille de la charge utile est un facteur important.

Pour un utilisateur qui n’a jamais installé Mono sur son iPhone auparavant, quelle serait la taille d’un Objective-C "Hello World"? être comparé à un MonoTouch & "; Hello World" " app?

Plus précisément, quel est l'env. nombre d'octets à télécharger, et env. nombre d'octets utilisés une fois installés?

Était-ce utile?

La solution

Un "Bonjour tout le monde" programme en Objective-C occupe 50 & nbsp; KB (dossier entier .app). Avec MonoTouch, un "Hello World" similaire L’application occupe 5 MB (dossier entier .app), ce qui n’est pas mauvais du tout compte tenu du fait qu’elle dispose d’un runtime avec un garbage collection.

Autres conseils

En 1.5 Monotouch

Une version validée - c'est-à-dire une application créée avec une licence de distribution - et ne contenant que les paramètres de projet par défaut, correspond à 5 Mo. L’exécutable binaire fait partie de ce 4,3 & MB.

D'après mon expérience, ils atteignent souvent jusqu'à 10 & MB, et les forums brossent le même tableau. L’appstore indique la taille décompressée, mais il est téléchargé compressé. Ce fichier zippé se situe autour de 3 MB, ce qui est bien, même en 3G.

À mon avis, la plupart des gens ne regardent pas la taille du fichier avant de télécharger une application, ni ne font particulièrement attention. Le nombre maximal d'applications en téléchargement 3G sur la boutique en ligne est désormais de 20 Mo , ce qui correspond parfaitement à la taille de MonoTouch.

Pour être l'avocat du diable, oui, il s'agit de nombreux ordres plus gros que l'équivalent d'Objectif-C et pourrait effrayer quelques personnes inquiètes d'occuper 4 à 10 Mo supplémentaires sur leur espace de 16 Go. Cependant, il y a aussi du temps pour commercialiser et les outils existants disponibles pour .NET. Je développe et toutes mes applications MonoTouch dans Visual Studio 2010, puis je les teste sur Mac et je ne pense pas que même Apple dirait que leur IDE est proche du leader du secteur.

De cette question sur MonoTouch et taille des fichiers exécutables :

  

MonoTouch ne se traduit pas par Obj-c. Il compile pour .NET IL, puis   compile cela (de la même manière qu'un compilateur JIT le ferait, mais avant   courir - donc "à l'avance" compilateur) en code ARM natif.

     

alors:

     

Obj-C - > GCC (ou LLVM) - > Code ARM

     

vrs MT:

     

C # - > IL - > (Compilateur AOT) - > Code ARM

     

Les fichiers binaires de sortie dans 3.x sont plus volumineux, car vous incluez également un   beaucoup de .NET Framework (enfin, Mono Framework, mais identique), donc si   vous utilisez, par exemple, System.Xml, il doit inclure cela dans la sortie -   même avec System.dll, etc. L'éditeur de liens est assez intelligent, mais la sortie   les fichiers binaires seront toujours plus grands .

     

Pour moi, la seule chose qui compte est le temps de chargement et la compression   taille binaire. Fichier binaire compressé pour un "Bonjour tout le monde" l'application est d'environ 2,5 à 3 mégawatts    plus petit dans 4.x on me dit ) contre environ 300 000 pour obj-c. La différence   devient de moins en moins à mesure que vous en ajoutez, car il ne comprend que les goûts de   system.dll une fois. Temps de chargement pour MT vrs Obj-c, faisant les mêmes choses à   le même temps est assez proche du même. L'un ou l'autre peut être fait pour   chargez lentement (faites juste quelque chose de long dans votre FinishedLaunching   sans le mettre sur un autre fil).

Le répondant a ensuite déclaré qu'il se sentait plus productif avec MonoTouch qu'avec Objective-C. YMMV.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top