Speaker

Pierre-Yves Ricau

Pierre-Yves Ricau

L8 Android Engineer at Square

San Francisco, California, United States

Actions

I live in San Francisco, I enjoy being with my family, rollerblading, baking and reading sci-fi.

Area of Expertise

  • Agriculture, Food & Forestry

Topics

  • Android
  • Leaks
  • Performance
  • Reliability

The Subtle Art of Profiling Android Apps

How do you investigate a performance issue that you can reproduce? Google has built several powerful yet intimidating investigation tools. The first time I opened Perfetto, I laughed and closed it immediately.

Where should you start? What signals should you look at, in what order, and how do you choose the right tool for your situation?

This talk will provide a systematic and concrete approach to analyzing Android performance problems, by using the right tools in the right order.

Interaction Latency: Square's User-Centric Mobile Performance Metric

Mobile performance metrics often take inspiration from the backend world and measure resource usage (CPU usage, memory usage, etc) and workload durations (how long a piece of code takes to run).

However, mobile apps are used by humans and the app performance directly impacts their experience, so we should primarily track user-centric mobile performance metrics. Following the lead of tech giants, the mobile industry at large is now adopting the tracking of app launch time and smoothness (jank during motion).

At Square, our customers spend most of their time in the app long after it's launched, and they don't scroll much, so app launch time and smoothness aren't critical metrics. What should we track instead?

This talk will introduce you to Interaction Latency, a user-centric mobile performance metric inspired from the Web Vital metric "Interaction to Next Paint" (web.dev/inp). We'll go over why apps need to track this, how to properly implement its tracking (it's tricky!), how to aggregate this metric and what thresholds you should target.

En quête de perf: l'art subtil du profiling Android

Comment enquêter sur un problème de performance? Google a publié de nombreux outils d'investigation très puissants, mais aussi très intimidant. La première fois que j'ai ouvert Perfetto, j'ai rigolé puis refermé la page immédiatement.

Par ou commencer? Quel signaux faut t'il regarder, quand, et quelle conclusion en tirer? Comment choisir le bon outil de profiling adapté à une situation?

Cette session vous présente une approche systématique et concrète pour analyzer des problèmes de performance d'applications Android, en utilisant les bons outils de profiling dans le bon ordre.

Cutting Edges: universal heap trimming with LeakCanary 3

At Square, we scaled our LeakCanary usage over the last nine years by running it on all UI tests on every pull request, uploading leaks detected in debug builds, and triaging leaks weekly. This works: we fixed thousands of leaks (in our apps, third-party libraries, and the Android Framework), and we're now finding fewer and fewer new leaks!

Unfortunately, we sometimes see the heap size grow over time without LeakCanary finding any issue. For example, constantly appending string logs to a collection would not trigger LeakCanary but would still lead to ANRs and OOMEs when the app eventually runs out of memory.

Inspired by the BLeak paper and the work of the Android Studio team, I built a new toolkit in LeakCanary that performs repeated heap dump diffs and detects objects with a constantly increasing number of outgoing edges (for example, a list that keeps growing).

Come learn how this works; together, we can fix all the leaks!

🐤🦈Shark: Diving into the guts of LeakCanary's Hprof parser

LeakCanary, a memory leak detection library for Android, was slow and used a lot of memory. For LeakCanary 2, I wrote a new heap dump parser, Shark, which uses 10 times less memory and is 6 times faster. Come learn about the gory implementation details and performance tricks!

We'll dive to the byte level then build our way up to efficiently compute shortest paths and dominators (graph theory without any math!), then use profiling tools to optimize algorithms and data structures where it matters. And of course it'll be 100% Kotlin.

Pull requests 👨‍💻, yoga 🧘‍♂️ & avocado toasts 🥑: 7 ans d’engineering à Square ✨

En 2013, j’ai eu l’opportunité de déménager à San Francisco pour rejoindre l’équipe Android de Square. J'y ai beaucoup appris et découvert de nombreuses pratiques que j’aimerai partager avec l’audience. Ces pratiques sont parfois individuelles, parfois collectives, parfois du Software Engineering et parfois plus générale. Et probablement pas Scum Master frAgile certified ;-) . Quelques sujets parmi la multitude abordée: Design Docs, transparence, core team vs décentralisation, méditation, le secrets des entretiens de code…

PokeLeaks: Gotta Catch 'Em All 🐤🔍

Bring your laptops and your investigative skills, we're going on a memory leak hunt!

We'll check out the repository of an app that contains hidden memory leaks, add LeakCanary, and start finding leaks. You have one job: fix all the leaks!

The goal of this session is to learn how to use LeakCanary and investigate its analysis reports. If we have extra time we can also look into tricky leaks in your own app.

MILK: a user-centric mobile performance model

Over the last few years, Block (the company formerly known as Square) focused on improving app performance as perceived by our customers as they experience our products. ​​To that end, we defined a user-centric performance model that provides a structure for thinking about app performance: the Motion Idle Latency Kit, a.k.a. MILK.

This talk will provide a comprehensive view of how we approach app performance, with practical advice & guidance that should work for most companies.

Human Centered API Design

Have you ever wondered why some APIs are a pain to use (fragments cough cough), while others are pure joy? API design is perceived as a craft, something that we get better at by learning best practices and applying a set of rules. Read Effective Java & Clean Code, that should be enough, right?

At Square, we wanted to create a remarkable API for a new SDK, and I started researching the topic of usability and API design. It turns out that there's a science to this madness, and we can all learn to build better APIs without just blindly following good practices. Come to this talk to learn the practical steps we took to get there.

Human Centered API Design

Have you ever wondered why some APIs are a pain to use while others are pure joy? API design is perceived as a craft, something that we get better at by learning best practices and applying a set of rules. Read Effective Java & Clean Code, that should be enough, right?

At Square, we wanted to create a remarkable API for a new SDK, and I started researching the topic of usability and API design. It turns out that there's a science to this madness, and we can all learn to build better APIs without just blindly following good practices. Come to this talk to learn the practical steps we took to get there.

[Panel] Apps at Scale: An Industry Discussion

What makes app development with 50 engineers different than 5?
What do you need to support 100's or 1000's of modules?
In this panel, we'll have representation from engineers who've worked on the infrastructure and platforms for some of the largest apps to discuss their various approaches to tooling, process, and organization.

droidcon San Francisco 2022 Sessionize Event

June 2022 San Francisco, California, United States

Pierre-Yves Ricau

L8 Android Engineer at Square

San Francisco, California, United States

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top