Sentry affida al sistema Android il profiler che prima girava nell’app
Dall’SDK 8.51.0, Sentry usa ProfilingManager e Perfetto su Android 15 e successivi. Sposta gran parte della raccolta fuori dal processo dell’app, con nuovi limiti su quando i profili possono essere registrati.
Che succede
Sentry cambia il modo in cui misura le prestazioni delle app Android. Dall’SDK 8.51.0, sui dispositivi con Android 15 e successivi usa ProfilingManager, l’API di sistema che raccoglie campioni degli stack in tracce Perfetto. Chi ha già attivo il profiling continuo passa al nuovo sistema aggiornando l’SDK.
Il vecchio profiler usava il tracer del runtime Android dentro il processo dell’app. Questo poteva far emergere un crash legato alla gestione di alcuni thread nativi; inoltre lo strumento di misura contendeva risorse al codice osservato. Con Perfetto gran parte del lavoro e delle allocazioni viene svolta in un processo di sistema. Sentry dichiara un carico inferiore su CPU e memoria, senza pubblicare misure numeriche.
Il profilo serve a ricostruire quali funzioni sono state eseguite e su quali thread. Nell’esempio di Sentry, il parsing di un grosso JSON occupa il thread principale per oltre un secondo: i singoli componenti dell’app sembrano corretti, ma nessuno ha spostato quel lavoro su un thread adatto. Il grafico rende visibile il motivo per cui l’interfaccia si blocca.
Il sistema operativo decide però se accettare le richieste di registrazione. Imposta limiti per app e per dispositivo, quindi anche un campionamento configurato al 100% non assicura un profilo per ogni sessione. Cambiano anche le funzioni disponibili: l’opzione startProfilerOnAppStart, per il profiling dedicato dell’avvio, non ha effetto con il nuovo backend.
Sotto Android 15 resta il profiler precedente. L’opzione enableLegacyProfiling permette di disattivarlo, rinunciando al profiling su quei dispositivi. Le tracce Perfetto raccolte possono essere scaricate da Sentry e aperte nel visualizzatore dedicato per approfondire l’analisi.
Perché conta
Per capire un rallentamento serve osservare l’app senza rallentarla troppo con l’osservazione stessa. Sentry sposta fuori dal processo buona parte di quel peso, ma affida ad Android anche il potere di dire quando si può registrare: cambia sia il costo della misura sia ciò che si riesce a vedere.
Vuoi sapere di più su pillole come questa?
Nella stessa edizione
scriptc compila TypeScript in codice nativo, comprese le dipendenze compatibili
Un Pentium Pro del 1995 gioca a scacchi con trent’anni di idee nuove
OpenAI rifà il backend di Git, senza chiedere agli agenti di cambiare strumenti
Sentry affida al sistema Android il profiler che prima girava nell’app
Prossima Pillola