2017-02-09 1 views
1

Je suis nouveau au développement d'android. Je voulais profiler les performances de mon application. J'ai donc généré un fichier journal (.trace) en ajoutant le code suivant -Comment analyser les fichiers .trace (profilage application android) en format sql

`// start tracing to "/sdcard/calc.trace" 
Debug.startMethodTracing("calc"); 
// ... 
// stop tracing 
Debug.stopMethodTracing();`  

Maintenant, j'ai un fichier calc.trace. Mais je veux analyser ce fichier au format sql afin que je puisse utiliser des requêtes avancées pour faire ressortir les informations des données. Comment puis je faire ça?

Répondre

0

Vous pouvez analyser le fichier de trace (.) Avec le code ruby ​​suivant qui utilise regex pour analyser les données dans le fichier (.) Sql. Il fournit également une requête pour insérer les données dans votre choix de base de données SQL.

Mais avant d'utiliser la commande suivante pour convertir le journal de trace binaire dans un fichier txt

/pathTotraceview/trceview -r filename.trace> filename.txt

Puis enregistrez et exécutez le code suivant.

#!/usr/bin/env ruby 

@values = Array.new 

STDIN.read.split("\n").each do |a| 
    if a =~ /(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s([\w+.$]+)/ 
       id = $1 
       tstart = $2 
       tend = $3 
       gstart = $4 
       gend = $5 
       excl = $6 
       incl = $7 
       meth = $8 
       @values << "(#{id},#{tstart},#{tend},#{gstart},#{gend},#{excl},#{incl},'#{meth}')" 
    end 
end 

puts "INSERT INTO table_name(pid,tstart,tend,gstart,gend,excl,incl,meth) values" 
puts "#{@values.join(" , ")};" 

Pour sac à main avec ce magasin de fichiers dans votre répertoire de travail toSQL.rb ou tout autre nom et utilisez la commande suivante dans votre terminal pour générer des dumps sql:

chat TraceFilename. txt | ./toSQL.rb> nom_fichier.sql