2012-07-31 2 views
1

Nous développons une application Monotouch avec MVVMCross similaire à l'exemple SqliBits (le UINavigationCOntroller a un contrôleur de tabulation et à l'intérieur du contrôleur de tabulation il y a un autre contrôleur de navigation). Il semble que la mémoire soit allouée mais jamais libérée. Pour reproduire cette erreur, lancez l'exemple SqliBits avec l'onglet Sessions du profileur, puis sélectionnez un jour, sélectionnez un jour, ... puis regardez l'allocation de mémoire et vous verrez que la mémoire alloué mais jamais libéré.MVVMCross - Fuite de mémoire SqlBits

Je suis autorisé à joindre une image mais il est assez facile de reproduire l'erreur.

Cordialement, Dan

Répondre

0

Comme un problème, ce qui a été discuté sur https://github.com/slodge/MvvmCross/issues/19

iOS libère uniquement des vues (via View Controller méthode ViewDidUnload) quand il y a un manque de mémoire - dans le simulateur cela peut être artificiellement créé à partir du menu Matériel. Au-delà de cela, il y avait aussi une petite fuite de mémoire qui semble avoir été provoquée par une référence au ViewModel dans les champs Action de RelayCommand. Ce n'est pas tout à fait clair pour moi ce qui a causé cela, mais en ajoutant des méthodes Dispose à RelayCommand qui annule cette action semble avoir résolu le problème (voir https://github.com/slodge/MvvmCross/commit/8fc1af3fc9960445b5358daf8111f6bc9683b907)