如何将 .trace(分析 android 应用程序)文件解析为 sql 格式

How to parse .trace(profiling android application) files into sql format

我是 android 开发新手。我想分析我的应用程序的性能。所以我通过添加以下代码生成了一个日志文件 (.trace) -

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

现在,我有一个 calc.trace 文件。但我想将该文件解析为 sql 格式,以便我可以使用高级查询从数据中提取信息。我该怎么做?

您可以使用以下 ruby 代码解析 (.)trace 文件,该代码使用正则表达式将数据解析为 (.)sql 文件。它还提供查询以将数据插入您选择的 SQL 数据库。

但在此之前使用以下命令将二进制跟踪日志转换为txt文件

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

然后保存并运行以下代码。

#!/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 = 
                 tstart = 
                 tend  = 
                 gstart = 
                 gend = 
                 excl = 
                 incl = 
                 meth = 
                 @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(" , ")};"

要使用此文件将其作为 toSQL.rb 或任何其他名称存储在您的工作目录中,并在您的终端中使用以下命令生成 sql 转储:

cat traceFileName.txt | ./toSQL.rb > fileName.sql