IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Problème de lenteur avec le composant TImage


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 52
    Points : 49
    Points
    49
    Par défaut Problème de lenteur avec le composant TImage
    Bonjour,

    J'utilise depuis au moins 10 ans le composant TImage de Lazarus sur Linux (Ubuntu) ( actuellement sur un portable Acer ) sans problème particulier.

    Tout à coup, j'ai souhaité entrer une image (.png) en utilisant la fonction stretch pour formater mon image. Alors, j'ai constaté que ce formatage demandait plus d'une minute, alors qu'auparavant c'était quasi instantané ...

    Quelqu'un a-t-il constaté quelque chose de ce genre ? Et que puis-je faire ?

    Merci pour toute réponse.


    Bon, j'ai redimensionné mon image avant de la charger afin de ne pas trop exiger du composant et j'ai ainsi un temps plus court. Mais, il est vrai que ceci n'était pas indispensable auparavant ...

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 726
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Citation Envoyé par pedestre Voir le message
    Tout à coup, j'ai souhaité entrer une image (.png) en utilisant la fonction stretch pour formater mon image. Alors, j'ai constaté que ce formatage demandait plus d'une minute, alors qu'auparavant c'était quasi instantané ...
    Avec la même image ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut
    lorsque tu dis :
    Citation Envoyé par pedestre Voir le message
    Bonjour,

    ..... en utilisant la fonction stretch pour formater mon image.
    C'est la propriété "Stretch" du TImage tu veux dire, non ?

    Mets-nous ton code, il y a peut-être quelque chose qui t'a échappé

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 52
    Points : 49
    Points
    49
    Par défaut Pb. de lenteur
    Merci de vos réponses.

    BeanzMaster: Oui, c'est la propriété stretch (j'ai utilisé à tort le mot "fonction") de TImage.

    Jipété: Oui c'est la même image. Très bizarrement, depuis longtemps la propriété stretch de TImage mettait bien mon image au format voulu et ceci instantanément. Et puis brusquement, j'ai eu ce problème de lenteur sans que j'aie changé quoi que ce soit au fichier de l'image ni au code de mon programme (j'ai seulement réinstallé les dernières versions proposées de fpc et Lazarus en 64 bits sous XUbuntu).

    Bon, j'ai résolu le problème en redimensionnant simplement mon image que j'avais laissée dans un format beaucoup trop grand,..

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 726
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Bonjour,
    Citation Envoyé par pedestre Voir le message
    Et puis brusquement, j'ai eu ce problème de lenteur sans que j'aie changé quoi que ce soit au fichier de l'image ni au code de mon programme (j'ai seulement réinstallé les dernières versions proposées de fpc et Lazarus en 64 bits sous XUbuntu).
    J'en déduis que tu as quand même recompilé le binaire, alors ?

    Et que donc des choses ont changé dans ton dos, entre les différentes versions des sources, ce qui s'est répercuté sur le binaire final qui s'est mis à faire nawak.

    Citation Envoyé par pedestre Voir le message
    Bon, j'ai résolu le problème en redimensionnant simplement mon image que j'avais laissée dans un format beaucoup trop grand...
    Pour dépanner rapidement ok, mais ce n'est pas la bonne solution, àmha.
    Parce qu'in fine tu ne peux plus utiliser la propriété stretch, du coup.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 328
    Points : 4 145
    Points
    4 145
    Par défaut Grande image ?
    Bonjour,

    Elle est grande comment cette image ?

    Les versions 64 bits sont assez gourmandes en espace mémoire (alignement des adresses, ajustement des tailles des objets, la taille des adresses, le code lui-même, etc.). Peut être, ce n'est qu'une hypothèse, n'a t'il plus assez de place alors il permute à outrance entre mémoire et disque (espace de swap). Auquel cas, les performances sont taupes (elles descendent très bas ).

    Un coup d’œil sur les ressources mémoires consommées pourrait lever/rejeter cette hypothèse.

    Bonne chance.
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  7. #7
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Bonjour,

    Elle est grande comment cette image ?

    Les versions 64 bits sont assez gourmandes en espace mémoire (alignement des adresses, ajustement des tailles des objets, la taille des adresses, le code lui-même, etc.). Peut être, ce n'est qu'une hypothèse, n'a t'il plus assez de place alors il permute à outrance entre mémoire et disque (espace de swap). Auquel cas, les performances sont taupes (elles descendent très bas ).

    Un coup d’œil sur les ressources mémoires consommées pourrait lever/rejeter cette hypothèse.

    Bonne chance.
    Que l'on soit en 32 ou 64 bits la taille prise en mémoire par une image reste la même cela ne change pas. Seule obstacle en 32 bit le maximum autorisé pour un bloc mémoire est de 2Go.
    Pour ce qui est du swap le TImage/TBitmap ne l'utilise pas. De plus sous linux il y'a quelques spécificité qu'il faut utiliser par rapport à Windows comme le couple Begin/EndUpdate dans certain cas. (vu avec Jipete sur quelques projets)
    De toutes les manières le TImage (et le TBitmap en général) est une vraie tortue avec Lazarus.
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  8. #8
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 328
    Points : 4 145
    Points
    4 145
    Par défaut Swap
    Bonjour,

    C'est vrai que la taille prise par l'image ne varie pratiquement pas (hormis quelques octets d'alignement) mais tout le reste croit (il suffit de faire une compilation 32 bits et 64 bits pour le voir). Si les ressources sont limitées, on passe allègrement en swap (c'est un phénomène d'avalanche, en dessous du seuil c'est OK, juste au dessus c'est KO).

    Le swap n'est pas décidé par le composant mais par le système d'exploitation qui juge seul, selon les ressources disponibles et les priorités, du swap éventuel d'une partie de la mémoire sur le disque. Pour les programmes, hormis les délais c'est transparent, ils ne voient pas que la mémoire n'est plus en ram mais sur disque. Il en résulte que la charge globale de la machine influe également sur ce comportement (un navigateur ouvert qui mange beaucoup d'espace est un bon vecteur de swap).

    Ce n'est qu'une hypothèse facile à tester. Je propose d'appliquer le rasoir d'Occam : commencer par tester les hypothèses les plus simples.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

Discussions similaires

  1. Problème avec BeginScene d'un composant TImage.
    Par ninaleo dans le forum Composants FMX
    Réponses: 13
    Dernier message: 05/05/2015, 12h27
  2. selectionner une image avec le composant Timage
    Par kroma23 dans le forum Débuter
    Réponses: 4
    Dernier message: 02/02/2009, 17h09
  3. E-mail de l'expéditeur avec le composant serveur Outlook
    Par DavFau dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 19/01/2008, 10h09
  4. [Débutante] Création d'une image avec un composant
    Par gwendo dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 09/07/2004, 09h58
  5. mettre a blanc le composant TImage
    Par Chonchon dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/11/2003, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo