La porosité ou fuite de mémoire (leak) des applications est un problème sérieux. C’est dans les systèmes d’exploitation modernes une des dernières erreurs d’une application qui peut affecter d’autres applications. Quand une application a besoin de mémoire elle en demande au système. Elle est tenue de libérer cette mémoire. S'il y a des oublis de libération, la taille mémoire allouée à l’application va enfler, le système va essayer de compenser en basculant une partie de la mémoire réelle en mémoire virtuelle (sur disque) d’où des ralentissements et à terme des blocages généraux de l’ordinateur.
Heureusement des outils sont fournis pour pouvoir vérifier en temps réel ce qui se passe. Sur macOS c’est le « Moniteur d’activité » Il nous a permis de diagnostiquer des pertes de mémoire sur nos applications et nous avons passé plusieurs jour à comprendre ce qui se passait.
A bout d’idées, nous nous sommes posés la question de savoir si le problème ne venait pas du système lui-même. Cela nous a paru tellement étrange que nous avons décidé de mener des tests sur une application fournie par le système : Textedit. Voici le protocole : - on lance Textedit - on note la mémoire allouée - on ouvre/ferme très rapidement des fenêtres en maintenant la touche Pomme enfoncée et en faisant N W N W…. - on regarde la différence de mémoire
Et là on se rends compte que de la mémoire n’est jamais libérée !
Ce test a été mené sur 10.7, 10.11, 10.14 et finalement sur la dernière version du système 12.2.1
Voici ce que l’on obtient avec Textedit, toute fenêtre fermée :
Et après le test d’ouverture et fermeture multiples :
Donc soit la perte de mémoire est effective, soit c’est l’outil d’inspection qui donne un résultat erroné.
Nous avons alors décidé de tenter d’isoler la fonction système soupçonnée d’être poreuse.
Pour afficher une image nous utilisons la séquence : - création de l’image (et donc allocation de mémoire) - affichage de l’image - libération de l’image (et donc libération de la la mémoire)
Si l’on supprime l’affichage et gardons les autres opérations la fuite disparait.
Ce serait donc dans notre cas la fonction CGContextDrawImage qui n’est pas « propre » et qui entraine des fuites.
Recalage d’items dans la boite de configuration de l’export numérique Ajout d ‘une nouvelle information aux documents : le nom de l’album. Ajout du nom de l’album aux tags MP3 Gestion du nom de l'album dans le jukebox et dans les fichiers .mya
En MyrScript (Harmony Assistant) une fonction appelée CreateMovieFromPictures(...) a été ajoutée.
Elle permet de créer très rapidement un fichier vidéo à partir d'une série d'images calculées, dessinées ou chargées par le programme, avec une piste son issue du jeu d'une partition.
Ainsi, un petit programme MyrScript de test d'environ 80 lignes a produit directement cette vidéo :
Correction : macOS, crash possibile en écho optimisé de la note Correction : PdfToMusic, supprimer toutes les modifications pouvait engendrer un crash Chasse aux porosités mémoire
Après de longues et difficiles recherches, une erreur dans le code source d'une fonction d'évaluation de la qualité du positionnement des notes a été localisée. Une fois corrigée elle améliore sensiblement le résultat du traitement de plusieurs fichiers PDF. Les symptômes étaient des notes séparées transformées en accord, ou au contraire des accords décomposés en notes successives.
Correction de décalage de jeu de sélection sur des portées Virtual Singer lorsque la partition contient des ruptures et des changements de tempo
Correction de dizaines de petites irrégularités dans le code, pouvant éventuellement générer des problèmes dans des cas extrêmement rares
Correction de problèmes dans la coloration syntaxique de l'édition MyrScript lors de l'utilisation de caractères d'échappement dans les chaînes de caractères
Dans le jukebox, le changement de musique n’arrête plus le jeu. Reactivation des touches claviers du Jukebox dans Melody Assistant PDFtoMusic : ajustement de la position des palettes au démarrage
Pas mal de temps passé à faire du ménage dans nos machines virtuelles, qui occupent plusieurs tera-octets, afin d'avoir la place d'installer des versions de Linux récentes. Un utilisateur nous a en effet signalé des problèmes d'impression : aperçu correct mais impression vide, même sur PDF. Impossible à reproduire Le problème a ensuite disparu chez lui après désinstallation totale du programme puis réinstallation. Alors que normalement tous les fichiers sont remplacés de frais lors de l'installation. Ceci restera probablement un mystère à jamais.
Travail sur le jeu de la sélection sur les portées Virtual Singer : correction d'un problème de décalage après des changements de métrique
Correction d'un bug graphique sur le tracé des ovales pleins, visible notamment dans les didacticiels lorsqu'une partie de l'image montre une vision "loupe"
Sélection du type des diagrammes d'accord : Décalage de l'option sélectionnée dans le menu déroulant des instruments
Mauvaise prise en compte de certains accords piano renversés dans la grille
Crash lors de la remise de la liste des diagrammes d'accord à sa valeur d'usine
PDFtoMusic / Windows : la vérification qu'une autre instance de l'application était déjà lancée se faisait après le contrôle ou la demande du numéro de série
Correction d'un décalage graphique des notes en mode gravure, lorsque la première note de la mesure possède une altération. Ceci peut changer l'aspect des partitions existantes
Windows: Correction d'un crash en export vidéo
Correction de cas de disparition des crescendo/decrescendo lors de la lecture d'anciens fichiers
Edition des appoggiatures :correction d’une erreur de traduction. Volet d’édition des appogiatures, meilleure intéraction entre le visuel et les cases à cocher, redistribution de la position de certains éléments pour faciliter la compréhension. On nous a signalé un problème d’affichage des fichier MyrWeb sur iOS quand ils sont en local (sur un serveur pas de problème). Après de longues recherche il apparait qu’il n’y a pas de solution a ceci, sauf peut être utiliser FireFox a la place de Safari.