PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → [WM17] iOs - Saturation mémoire iPad
[WM17] iOs - Saturation mémoire iPad
Débuté par Sylvain, 21 juin 2012 18:01 - 8 réponses
Posté le 21 juin 2012 - 18:01
Bonjour,

Mon appli bloque au bout d'un certain nombre d'appel de fenêtres et de requêtes.

Pour libérer les requêtes j'utilise hannuledéclaration mais cela ne change pas grand chose.

Peux-t'on :

1) afficher la mémoire dispo de l'iPad dans l'application
2) Libérer d'autres ressources mémoire

Merci d'avance

Sylvain
Membre enregistré
203 messages
Popularité : +3 (3 votes)
Posté le 22 juin 2012 - 16:04
Bonjour,

Je ne sais pas si c'est pareil sur l'iPad,
mais j'ai rencontré le problème sur les téléphones Android :
la taille mémoire de l'appli était limitée à 20 Mo par le système (ça a probablement évolué depuis). A l'époque s’était indiqué dans la doc du système, vous pouvez surement trouver des infos sur internet.

Si vous regardez bien toutes les applis affichent seulement les 1er(s) enregistrements de données, et chargent ensuit des petites tranches en libérant les précédentes.

Il faut peut-être revoir votre gestion mémoire dans ce sens.
Je suis preneurs des infos concernant les limitations constatées.

Cordialement,

Alex
Posté le 03 juillet 2012 - 20:17
Oui mais certains champs (même fenêtre fermé) ne libère pas la mémoire. Je pense aux champs HTML et au champs Fenêtre Interne. Qui une fois chargé ne sont libéré qu'à la fermeture de l'application ou crash de cette dernière.

Faite un essai avec une fenetre avec un champs fenetre interne dans laquelle vous charger une fenetre interne.
Maintenant Ouvrez/fermez plusieurs fois de suite cette fenêtre. Vous allez planté l'appli (voir même votre appareil). Je suis actuellement sur une recherche de solution et j'ai pour le moment rien.

J'ai remonté l'info à PCSoft et cherche du côte de xCode pour me sortir de ce bourbier. Car pour un confort d'utilisation et un pseudo multi thread j'utilise ans champs Fenêtre Interne et des champs HTML.
Posté le 05 juillet 2012 - 11:41
Pour répondre à mon propre post voici une solution qui permet de libérer une partie de la mémoire (mais ne résout pas le problème avec les champs HTML)

- Faire une procédure en Objective c :
void IOS_Dealloc(void* CurrentField)
{
NSLog (@"Tentative de release du champs");
[CurrentField release];
}


- Puis au code de fermeture de la fenêtre faire pour les champs nom libérés
IOS_Dealloc(Handle(VOTRE_CHAMPS))
*

Et ça libère les champs (attention pour les fenêtre interne, bien libérer le champs mais pas la fenêtre)
Posté le 05 juillet 2012 - 13:43
Spek, Merci pour cette procédure.

J'ai créé un POST pour permettre de partager ce type de module très utile.

Pourrais-tu le copier dedans ?

Voici le lien vers le POST.

http://forum.pcsoft.fr/thread.awp…

Merci

Sylvain


Spek a écrit dans le message de news <6b2abe9c4e286a50564e0e49a8ca03e8@news.pcsoft> :
Pour répondre à mon propre post voici une solution qui permet de libérer une partie de la mémoire (mais ne résout pas le problème avec les champs HTML)

- Faire une procédure en Objective c :
void IOS_Dealloc(void* CurrentField)
{
NSLog (@"Tentative de release du champs");
[CurrentField release];
}


- Puis au code de fermeture de la fenêtre faire pour les champs nom libérés
IOS_Dealloc(Handle(VOTRE_CHAMPS))
*

Et ça libère les champs (attention pour les fenêtre interne, bien libérer le champs mais pas la fenêtre)
Posté le 05 juillet 2012 - 19:04
Spek,

Merci d'avoir ajouté ton code dans le Post.

Je cherche à généré un PDF à partir d'une table HF et l'imprimer. Penses-tu qu'on puisse faire ça en OBJ C ?

Sylvain
Posté le 09 juillet 2012 - 17:37
Pour explication je n'utilise l'obj-c qu'en cas d'ultime contrainte. Tant que je le peux je passe par WM. Si jamais je bloque je passe sur du web service en php et si jamais je ne peux atteindre ce que je veux avec ces méthode je finis par faire de l'objective-c. Et tant que je le peux je ne travaille pas avec HF. En effet mes données étant partagé entre Sites Web, logiciels, et Appli mobile (iphone / android / windows phone) je passe par du MySQL sur un serveur.

Donc pour répondre à votre question, je ne me suis pas penché sur la question vu que je génère bien du PDF, mais uniquement en php et depuis une base MySQL que je récupère avec un HttpDonneRésultat.

Après ayant codé longtemps en C / C++ je dirais que oui il doit exister une librairie, mais alors pour récup de données HF en Obj-C. Je vous souhaite bonne chance.
Personnellement, je passerais ma base de données en MySQL sur un serveur ou en SQLLite, le cas échéant Etats et Requêtes.
Après voici un tuto Obj-C : http://www.ioslearner.com/generate-pdf-programmatically-iphoneipad/ mais à remettre sur WM doit être galère. Je chercherais d'autres solutions à votre place, car ce qui bloque le plus là c'est attaqué les données depuis Obj-C sur une base HF.
Posté le 12 mai 2013 - 21:13
Bonjour,

Avez vous trouvé une solution pour libérer la mémoire suite à appel successif
d'un champ HTML ? J'ai le même souçis et sans ces appels, mon programme ne vaut
plus tripette, 3 semaines de boulot perdues !!!

Cordialement
Membre enregistré
141 messages
Posté le 13 mai 2013 - 11:17
Oui les gérer uniquement en Objective-C (UIWebView)