Autore Topic: logcat e versione "ufficiale"  (Letto 646 volte)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
logcat e versione "ufficiale"
« il: 28 Gennaio 2012, 08:44:16 CET »
0
mi chiedevo...
quando su un applicazione  non è attaccato il debugger il logcat come viene gestito?

nel senso se io metto 2000 messaggi di log nel momento in cui non sto + debuggando il codice i comandi vengono lo stesso eseguiti?
perché se venissero eseguiti lo stesso allora mettere il logcat significa rallentare il programma per fargli stampare dati inutili che non vengono letti mai...

Offline r1si

  • Utente junior
  • **
  • Post: 73
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    lg 2x
  • Play Store ID:
    r1si
  • Sistema operativo:
    ubuntu 11.10
Re:logcat e versione "ufficiale"
« Risposta #1 il: 28 Gennaio 2012, 10:38:41 CET »
0
se in messaggi sono in debug
Log.d(STring, String)
allora vengono stampati solo in debug ( il progetto deve essere in debug )
se invece intenti i log normali , chiaramente quelli venegono sempre stampati , lui puoi leggere con applicazioni come alogcat .
il log virtualmente non rallenta la macchina.

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
R: logcat e versione "ufficiale"
« Risposta #2 il: 28 Gennaio 2012, 10:43:18 CET »
0
Virtualmente?
Se ho un for che si ripete 2000 volte sono cmq 2000 cicli in più (almeno) di clock...

Inviato dal mio GT-I9100 usando Tapatalk

Offline r1si

  • Utente junior
  • **
  • Post: 73
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    lg 2x
  • Play Store ID:
    r1si
  • Sistema operativo:
    ubuntu 11.10
Re:logcat e versione "ufficiale"
« Risposta #3 il: 28 Gennaio 2012, 10:58:18 CET »
0
se hai un for che si ripete 20000 volte lo hai cmq sia , che stampi a video i log , sia che non lo fai ,
la sostanza è che pesa uguale o quasi uguale, con o senza log .
I log non sono per nulla ingombranti.

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
R: logcat e versione "ufficiale"
« Risposta #4 il: 28 Gennaio 2012, 11:06:58 CET »
0
Perché fino ad ora ho sempre messo i logo e poi cancellati una volta che ho appurato che il codice funzioni...
Il programma che sto sviluppando è già di suo pesante... Ci sono funzioni che sul mio cellulare impiegano anche 30 secondi...

Quindi cerco di ridurre al minimo il codice per questo :-)

Inviato dal mio GT-I9100 usando Tapatalk

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:R: logcat e versione "ufficiale"
« Risposta #5 il: 28 Gennaio 2012, 11:26:24 CET »
0
Perché fino ad ora ho sempre messo i logo e poi cancellati una volta che ho appurato che il codice funzioni...
Il programma che sto sviluppando è già di suo pesante... Ci sono funzioni che sul mio cellulare impiegano anche 30 secondi...

Quindi cerco di ridurre al minimo il codice per questo :-)

E fai benissimo. Comunque prova ad eseguire le stesse operazioni (quelle molto onerose) con e senza codice di Log compilato, e vedi se noti differenze apprezzabili. Se riporti l'esperienza qua nel forum, è sicuramente un contributo interessante per tutti.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
R: logcat e versione "ufficiale"
« Risposta #6 il: 28 Gennaio 2012, 11:38:51 CET »
0
Eh ma so già che anche fosse sarebbe un tempo relativamente piccolo...
Ad es se su 30 secondi ne risparmio 1 me ne accorgo difficilmente...  Sicuramente il risparmio c'è... Il quantificarlo è difficile...
Bisognerebbe fare una Funzione che conti quanto tempo impiega ad eseguire il log qualcosa come


Codice: [Seleziona]
startclock()
log.d("test","test");
stopclock()
log.d("clock",printclock());

ma non so come calcolare il tempo :-) non l'ho mai fatto

poi cmq una volta che si sa quanto tempo impiega ad eseguire il log.d allora si possono fare anche tutti gli altri calcoli :-)
« Ultima modifica: 28 Gennaio 2012, 11:40:55 CET da Trigun »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:logcat e versione "ufficiale"
« Risposta #7 il: 28 Gennaio 2012, 19:11:43 CET »
+1
Io faccio in questo modo:

Codice (Java): [Seleziona]
//nella classe Util
public static final boolean DEBUG_MODE = true;

//Dove serve
if(Util.DEBUG_MODE){
        Log.d("tag", "log");
}

poi ovviamente quando rilascio metto la variabile DEBUG_MODE a false.
Tieni conto in fase di release il compilatore si trova un if che non verrà mai eseguito (poichè il test è fatto su una costante che è a false) taglia proprio via quel pezzo di codice.

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:logcat e versione "ufficiale"
« Risposta #8 il: 12 Febbraio 2012, 23:37:24 CET »
0
seguendo il tuo consiglio ho fatto in un altro modo :-)
mi son creato una classe Log dentro il mio package e li ho fatto questo:
Codice: [Seleziona]
public class Log {

        static boolean DEBUG = true;

        public static void v(String s, String m) {
                if (DEBUG)
                        android.util.Log.v(s, m);
        }

        public static void e(String tag, String msg, Throwable tr) {
                if (DEBUG)
                        android.util.Log.e(tag, msg, tr);
        }
}

e al posto di implementare il log di android.util vado ad implementare la mia classe di log... in questo modo non serve neanche che metto ogni volta l'if :-)

(poi ho creato la classe di log perchè voglio implementare anche un log che viene stampato sul device in un dialog)