Author Topic: Lenteur Ancestris  (Read 1282 times)

0 Members and 1 Guest are viewing this topic.

Offline Zurga

  • VIP
  • Supernatural Member
  • *
  • Posts: 2 793
    • View Profile
Re: Lenteur Ancestris
« Reply #15 on: January 18, 2022, 08:29:00 »
c'est AWT-EventQueue-0 qui prend la CPU, et chaque fois que je fais "control-roulette sur la source", il y a 2,5 secondes CPU qui se rajoutent à cet AWT-EventQueue-0.
C'est le thread d'affichage de l'application.
Tout ce qui est graphique est envoyé à ce thread qui se charge de la mise à jour visuelle des écrans.
Il est étonnant que cela prenne 100% du CPU, mais ce n'est pas étonnant que ce soit ce thread qui soit sollicité.

Zurga

Offline daucourt

  • VIP
  • Jr. Member
  • *
  • Posts: 12
    • View Profile
Re: Lenteur Ancestris
« Reply #16 on: January 19, 2022, 23:22:53 »
Hier soir je ne pouvais pas tester, ce soir je m'y suis remis !

J'ai donc
  • Arbo12 : l'arborescence du 12 janvier ==> tout est instantané
  • Arbo17 : l'arborescence du 17 janvier ==> avec ancestris 11, le moindre clic sur un évènement Cygnus prend 8 secondes

Arbo12 est de la forme:

Arbo12
Arbo12/arbre.ged
Arbo12/Photos/*.jpg
Arbo12/Sources/*.jpg
Arbo12/Recherches/*.jpg
Arbo12/fichiers
Arbo12/répertoire/fichiers

Arbo17 est du même acabit.

Comparaison récursive des deux arborescences: Les deux différences sont
1. arbre.ged
2. qques fichiers ont été déplacés de Recherches (mon répertoire d'attente) à Sources (mon répertoire officiel)

J'ai effectué les tests suivants :
- ArboTest0 = Arbo17/arbre.ged  (1 seul fichier) ==> tout est instantané
- ArboTest1 = Arbo17 + Arbo12/arbre.ged qui vient écraser Arbo17/arbre.ged  ==> tout est instantané
- ArboTest2 = Arbo12 + Arbo17/arbre.ged qui vient écraser Arbo12/arbre.ged   ==> tout est instantané

Je passe à
- ArboTest4 = Arbo17, et je supprime un par un les fichiers dans Sources, je teste à chaque fois dans Ancestris 11.
Finalement, je trouve assez vite qu'en supprimant un fichier, tout rentre dans l'ordre.

Je créé alors l'arborescence suivante avec seulement 2 fichiers:
- ArboTest5 = Arbo17/arbre.ged + Sources/fichier.jpg
Et là je reproduis le problème !

Ce fichier jpg, il m'a l'air complètement normal, il fait partie d'une série de 5 photos que j'ai prises aux Archives récemment, et celui là est un acte de naissance. Pourquoi ce fichier là corrompt tout ? Et pas les 4 autres, je ne sais pas.

J'ai alors tenté de convertir le fichier jpg en png, puis retour en jpg, et là je n'ai plus les 8 secondes, mais j'ai un petit qqch qui fait que j'ai un délai.

@FredericL, merci pour la méthodo d'investigation, je vous envoie le fichier par mail pour tentative de débug, et voir pourquoi Ancestris réagit aussi mal.
@Zurga, je n'ai pas eu le temps d'investiguer plus avant la voie profiling.


Offline FredericL

  • VIP
  • Hero Member
  • *
  • Posts: 639
    • View Profile
    • Généalogie personnelle et logiciel gratuit Ancestris
Re: Lenteur Ancestris
« Reply #17 on: January 19, 2022, 23:38:03 »
Bonsoir,

OK, parfait, j'ai reçu la photo, je la teste demain !

Bien à vous,
Frédéric

Offline Zurga

  • VIP
  • Supernatural Member
  • *
  • Posts: 2 793
    • View Profile
Re: Lenteur Ancestris
« Reply #18 on: January 20, 2022, 09:14:44 »
Quelle est la taille de ce fichier ?
Est-il codé en progressive jpg ?

Zurga

Offline FredericL

  • VIP
  • Hero Member
  • *
  • Posts: 639
    • View Profile
    • Généalogie personnelle et logiciel gratuit Ancestris
Re: Lenteur Ancestris
« Reply #19 on: January 20, 2022, 16:41:53 »
Bonjour Thierry,

Avec Ancestris 12, je viens de rajouter l'image reçue telle qu'elle à la généalogie Bourbon, à l'événement général de l'individu, ou dans une source de naissance, à l'individu pris au hasard I207. Un peu de délai à l'intégration de la photo la première fois, mais quasi instantané ensuite.
J'ai refais la même chose après avoir resauvegardé la photo en jpg avec gimp. Pas de différence.

En revanche en v11 le délai est bien là et le CPU monte à 105% pendant 3-5 secondes, que ce soit avec la photo originale ou resauvegardée. La photo fait 1,5 Mo ce qui n'est pas gros. Pour une autre photo de 3Mo c'est plus rapide. Cette photo a beaucoup de texte scanné, c'est peut-être plus long à décompresser en mémoire. Cela ne semble pas que lié à sa taille.

Le v12 a manifestement amélioré la performance mais je vais creuser quand même pour voir si on peut optimiser pour ce type de photo, pour autant que j'arrive à voir ce que cette photo a de particulier:
- La ligne qui dure longtemps, c'est la ligne "1448 bi = reader.read(0, param);" dans BufferedImage read(stream) du module imageIO.java. C'est du java standard.

Plus à suivre... Si Zurga tu veux ajouter qqchose.

Frédéric
« Last Edit: January 20, 2022, 16:43:32 by FredericL »

Offline FredericL

  • VIP
  • Hero Member
  • *
  • Posts: 639
    • View Profile
    • Généalogie personnelle et logiciel gratuit Ancestris
Re: Lenteur Ancestris
« Reply #20 on: January 20, 2022, 17:26:15 »
Bon, j'ai un peu optimisé le code mais le vrai moyen de réduire le délai est de réduire un peu la taille et la qualité de l'image. J'ai aussi décoché progressif.

A noter, il faut éviter de mettre une image lourde en image général de l'individu car c'est celle qui est affichée par défaut la plupart du temps.

A surveiller.
Frédéric
« Last Edit: January 20, 2022, 18:22:54 by FredericL »

Offline Zurga

  • VIP
  • Supernatural Member
  • *
  • Posts: 2 793
    • View Profile
Re : Re: Lenteur Ancestris
« Reply #21 on: January 20, 2022, 17:42:53 »
Plus à suivre... Si Zurga tu veux ajouter qqchose.
La photo est enregistrée en progressive Jpeg.
Pas sur que cela ait un impact, mais c'est largement possible.

Zurga

Offline Zurga

  • VIP
  • Supernatural Member
  • *
  • Posts: 2 793
    • View Profile
Re : Lenteur Ancestris
« Reply #22 on: January 21, 2022, 10:23:09 »
Je corrige.
J'ai testé une image progressive et une image baseline, la différence de chargement est plus que notable.
C'est instantané pour une image baseline et très long pour une image progressive.

On va voir si on trouve une solution, mais je ne garanti rien.

Vous pouvez en revanche changer votre paramètre d'enregistrement de l'image pour supprimer l'aspect progressif de cette image.

Zurga

Offline daucourt

  • VIP
  • Jr. Member
  • *
  • Posts: 12
    • View Profile
Re : Lenteur Ancestris
« Reply #23 on: January 23, 2022, 20:46:02 »
Donc pour résumer, et si j'ai bien compris :
- solution de contournement n°1 : utiliser des jpeg baseline (et non pas des progressive)
- solution de contournement n°2 : utiliser ancestris 12 (et non pas 11)

J'allais vous répondre que je n'ai aucune raison d'avoir des jpeg progressive, et que des jpeg baseline me suffisent. Ce qui est vrai, et j'ai transformé tous mes jpeg de progressive en baseline en utilisant la commande:

Code: [Select]
jpegtran -copy all -outfile out.jpg in.jpg
Cette commande a l'avantage de ne pas faire de ré-encodage jpg, donc pas de perte de qualité, et le copy all permet de garder toutes les méta-datas (horodatages, point gps, etc).

Après investigation, en regardant les noms des fichiers que j'ai du transformer, je m'aperçois que mon scanner produit des progressive, et mon téléphone produit des progressive. Donc le problème va sûrement réapparaître. Donc la solution de contournement n°2 va s'imposer. Mais j'utilise Debian stable, et je préfère les versions stable. Je n'ai pas encore cherché quels sont les avantages de la v12 qui me feraient la choisir, hormis évidemment un meilleur traitement des jpeg progressive.

Merci beaucoup à tous les deux pour votre temps, vos investigations et votre aide.