Aller au contenu

Lag/Latence Application


Recommended Posts

Bonjour,

J'ai récemment mis mon application sur android market et j'ai eu des retours d'utilisateurs comme quoi l' application aurait des lags ou latence.

Pourtant j'ai testé sur un galaxy s2 et Xperia mini pro , L'application répond parfaitement sans aucun soucis de latence.

Il s'agit de l'application HipHop Maker Lite ,si parmis vous quelques personnes pourrait tester et me dire s'il y a bien ce probleme. je vous en remercie

Comment Pourrais-je tester/voir sur Eclipse si il y a des lags?

Merci

Modifié par Franckdroid
Lien vers le commentaire
Partager sur d’autres sites

bonjour,

fais attention, tes 2 téléphones sont des 2.3 (profitant du concurent garrbage collector) avec 512Mo de RAM (ce qui est conséquent).

des problèmes de latence (pour peut que ton application ne soit pas lourde niveau CPU), dont du a des action de garbage collector. Android 2.3 a amélioré la situation, en déclenchant de petit garbage collector qui n'interrompent pas le fonctionnement de ton application

la question qu'il faut te poser est : est ce que je fais trop de new, en particulier quand un utilisateur fait du bouton smasher. Je ne connais pas ton implementation, donc je ne peux pas vraiment t'aider, mais si tu connais quelqu'un avec un telephone 2.2 ou plus bas, tu peux essayer de voir ce que ca donne, c'est la piste que je viserais.

concernant eclipse, j'ai peur qu'il n'y ait pas grand chose ( peut être sur l'émulateur, si ca fonctionne bien? )

Modifié par kanchi
Lien vers le commentaire
Partager sur d’autres sites

Merci de ta réponse kanchi.

J'avais pas du tout penser a ce probleme de garbage collector.

Il est vrai que jai beaucoup de New a la suite , chaque bouton de mon application lance un son...donc en réaliter qui ne libere jamais la mémoire a ce que j'ai compris.

ne serait-il pas interessant dans ce cas de mettre un system.gc() a la fin de chaque "sous fonction " de bouton?

Dans l émulateur lorsque je vais faire une action de boutons dans mon application , il met en orange dans le LogCat " Write blocked for 119ms,1 dalayed writes.."

Je vais essayer comme tu la proposer de trouver un android sous version 2.2 ou inferieur.

Merci .

Modifié par Franckdroid
Lien vers le commentaire
Partager sur d’autres sites

Forcer un gc n'est pas forcement la bonne solution, ton application a vocation a avoir un son constant si l'utilisateur s'en sert en tapant comme un bourin

essaye plutot d'initoaliser tout tes son au demarrage ( bouffant plein de ram, mais ton application en a BESOIN), et de declencher les sons sans faire un new.

Je ne sais pas comment tu declenche tes son (si tu veux mettre le bout de code je taiderais potentiellement) mais il vaut mieux initialiser et utilisier ( voir recycler) plutot que faire des new au milieu

Lien vers le commentaire
Partager sur d’autres sites

Mauvaise idée pour le system.gc donc.

Je vais tenter d'initaliser tout sa.

Voici un bout de code , tout les boutons sont lancés de cette maniere

Merci pour ton Aide:)

Button.OnClickListener buttonPlay1OnClickListener

= new Button.OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

float curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

float maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

float leftVolume = curVolume/maxVolume;

float rightVolume = curVolume/maxVolume;

int priority = 0;

int no_loop = 0;

float normal_playback_rate = 1f;

soundPool.play(soundID1, leftVolume, rightVolume, priority, no_loop, normal_playback_rate);

}

};

Lien vers le commentaire
Partager sur d’autres sites

je ne vois rien de particulièrement mauvais dans ton implémentation (j'aurais remplacé la portion de code :

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

float curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

float maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

par des variables statique, quitte a les mettre à jour quand un utilisateur clique sur le bouton "volume down" ou "up".

dans ton constructeur de :SoundPool (int maxStreams, int streamType, int srcQuality) tu as mis quoi en maxstream?

Lien vers le commentaire
Partager sur d’autres sites

En Maxstreams j'ai mis à 100 (c'est un peu beaucoup non?)

.Pense tu que cela peu poser probleme pour le garbage collector ?

Je l'ai mis a 100 car enfaite le maxstreams correspond au nombre max de fois que l'on peut jouer simultanement , excedé ce maxstreams il y a un ordre de priorité qui s'établie et qui annule un son precedemment jouer.

Je l'ai mis a 100 car je ne souhaitai pas qu'il y est d'ordre de priorité.

Merci beaucoup.:)

Lien vers le commentaire
Partager sur d’autres sites

Je mettrais une valeur inferieur pour plus de sureté mais je doute que ce soit sa le probleme :mellow:

Mallheuresment De mon coté je n'ai trouver personne ayant une 2.1 ou inferieur ..

Ca m'aiderai éormement si tu pouvais remettre la main dessus , ce serai super on serai fixé.

Un grand merci )

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...