Nous avons une application de surveillance construite sur swt et fonctionnant sous Linux. nous avons quelques boutons et une partie dynamique qui change lorsque nous cliquons sur ces boutons. Le problème est que si certains cliquent trop rapidement, le processeur peut atteindre 100% et être suspendu pour toujours. Nous avons observé ces pics rapides de cpu seulement sur Ubuntu Linux où en tant que fenêtres il fonctionne sans démangeaisons. Nous sommes sûrs que notre application repeint chaque fois que nous cliquons (nous avons une partie dynamique) sur le bouton et c'est par conception. Le problème n'est pas seul avec la partie dynamique. Une solution consiste à ignorer les clics rapides.problème de performance swt GUI sur linux
Nous nous demandons si nous pouvons ignorer les clics rapides des boutons pour éviter que le cpu n'atteigne 100%. Si cela ne fonctionne pas, nous devrons peut-être revoir la partie dynamique que nous préférons comme dernière option. Les suggestions/commentaires sont grandement appréciés.
Avec plus d'enquête, j'ai trouvé que ma boîte Linux est à court de mémoire et je ne vois rien dans les journaux. Ma mémoire de tas est dans les limites. Donc maintenant je soupçonne qu'il pourrait y avoir une fuite de mémoire natif puisque nous utilisons swt. Quand j'ai regardé le code, une classe utilise la méthode finalize pour disposer l'objet swt. Je soupçonne que ça pourrait être le coupable. Est-ce que cet objet est finalisé par gc mais laisse les ressources mémoire natives et provoque des fuites? – Kishore
pourrait être ... finaliser est indéterministe. Vous ne devez pas utiliser finaliser pour libérer la mémoire dans SWT. – nanda
Oui. Nous avons du code pour libérer la mémoire native dans les méthodes de finalisation.Bien que nous ne l'ayons pas ré-factorisé, nous avons prévu de le faire. – Kishore