Characterizing and detecting performance bugs for smartphone applications | Synapse