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

Composants FMX Delphi Discussion :

D'où peuvent venir des freezes ? [Android]


Sujet :

Composants FMX Delphi

  1. #1
    Membre régulier Avatar de Coudrak
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 66
    Points : 90
    Points
    90
    Par défaut D'où peuvent venir des freezes ?
    Bonjour,

    Question générale sur des blocages...

    J'ai développé une app pour Android avec Delphi 10, et de temps en temps, l'application freeze, c'est-à-dire qu'elle est complètement bloquée (définitivement) et qu'il faut rebasculer sur la home d'android et ensuite tuer l'app.
    Ca peut être juste au début de l'utilisation comme au bout d'un certain temps.
    L'application fait des requêtes HTTP vers un serveur DataSnap, mais les blocages n'ont pas forcément lieu quand il y a une requête d'exécutée...
    Est-ce que ça arrive à d'autres personnes ? D'où peut venir le blocage d'une application sous Android ? Je n'ai pas de pistes d'investigation, et sous Windows il n'y a aucun problème.
    Merci !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 393
    Points : 637
    Points
    637
    Par défaut
    cela peut venir de tellement de points...

    sous android comme sous ios si tu fais un traitement très long et bloquant le système peut tuer ton appli

    utilise des threads pour faire tes requêtes

    le mieux est lancer ton appli en mode debug sous android tu devrais voir si une exception est levée

  3. #3
    Membre régulier Avatar de Coudrak
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 66
    Points : 90
    Points
    90
    Par défaut
    ok merci, j'utilise bien des threads pour les requêtes, et normalement il y a un timeout au pire de 60 secondes si leu serveur est perdu,
    je lance bien en debug et il n'y a aucune fenêtre d'erreur... bon tant pis

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 393
    Points : 637
    Points
    637
    Par défaut
    va dans C:\Users\Public\Documents\Embarcadero\Studio\18.0\CatalogRepository\AndroidSDK-xxx\tools et lance monitor.bat (Android Device Monitor)

    tu pourras tracer les logs pour avoir plus d'infos

  5. #5
    Membre régulier Avatar de Coudrak
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 66
    Points : 90
    Points
    90
    Par défaut
    Je pense que c'est parce que l'appli prend trop de mémoire (jusqu'à 300 Mo de RAM), je vais changer ça.

  6. #6
    Membre régulier Avatar de Coudrak
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 66
    Points : 90
    Points
    90
    Par défaut
    Finalement en ajoutant une section critique dans mes threads d'une meilleure manière que je m'y prenais, ça semble avoir résolu les soucis.
    DataSnap ne semble pas pouvoir être multithread quand on en en client REST, donc j'envoie les requêtes les unes après les autres, mais quand même dans un thread pour ne pas bloquer l'appli. Or il devait y avoir une désynchronisation entre ce thread et DataSnap quand il reçoit la réponse du serveur, je ne saurais expliquer, mais bref, penser à :

    TCriticalSection.Acquire

    TCriticalSection.Release

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Les disques SSD hors tension peuvent causer des pertes de données
    Par Michael Guilloux dans le forum Sécurité
    Réponses: 24
    Dernier message: 04/12/2018, 22h16
  2. Réponses: 8
    Dernier message: 30/06/2011, 18h13
  3. Réponses: 1
    Dernier message: 10/11/2009, 15h17
  4. KSH : fichier de paramètres séparés par ";" qui peuvent contenir des ";"
    Par rafuoner dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 10/11/2009, 15h15

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