Production profiling makes its mobile debut.

The Android Profiler is a tool built into Android Studio to help you profile your app in real-time. Specto is a cloud-based performance management tool meant to be deployed in production as part of your app. Both have essentially the same goal: to produce insights that will improve your app’s performance, making it faster and resource-efficient. But their approach differs—if you’ve only ever used the Android Profiler, Specto may provide fresh insights and help you keep track of performance on an ongoing basis with minimal effort.

Here we’ll specifically take a look at the method tracing feature which monitors Java…

Photo by Victor Furtuna on Unsplash

A poem

When I read a story
that makes me go

I like to find it
without comment
or clap.

Like a hidden treasure.
A gentle soul,
laid bare.

It takes courage to write
for an empty chair.
Hoping. Trusting.

I wish
I could sit
in all of them
and clap
my heart

Photo by Ryoma Onita on Unsplash

Yes, I am white.
And yes,
I am fragile.

My ego bruises easily.
My defenses come up
without a thought.

Please, be gentle.
This little heart is opening
to a world of suffering.

Hey Stark, thanks for bringing this story to my attention. I read the original letter and did not feel the outrage that you express. I can more easily relate to Alma's relief. Perhaps Samuel's letter wasn't perfect, but it shows a growing self-awareness that I welcome.

“Hatred never ceases by hatred, but by love alone is healed.”

The most uncomfortable letter I’ve ever written

(Photo by Austin Mabe on Unsplash)

Hello social justice warriors, woke people, people of color, people without color, Medium members, Medium lurkers, literate animals, and everyone else. Welcome to my self-cancellation. I’m kidding, I think.

Lately, I have been mulling over racism and wokeness. I was going to write a wish for an end to “white people” generalizations, but I knew that was coming out of frustration so I didn’t. Then, this morning, I had the idea. The one that makes me uncomfortable, because I have to dig deep and be vulnerable. The one that scares me because I don’t know how people will react. The…

Photo by Marco Lastella on Unsplash

Sometimes I feel a deep loneliness.
Familiar, like it’s always been here.
I remember, as a child,
misunderstood by all,

That was you.

Oh but I’ve changed so much since.
I’ve replaced all my pieces.
I strived. I improved.
Isn’t this what you wanted?
You’re still here. Why?

You seem
like you could use
a steady friend.

So we sat.
Me and my loneliness,
together at last.

My wife said she needs time alone. Not in the dramatic, I’m fed up with you and we’re probably going to break up kind of way. More like, I love you but people need time alone to unwind sometimes and that’s normal and totally chill.

So I drove up to this tiny cabin in the woods. It’s a simple life here. Just the essentials. There’s a dry toilet but it’s better to pee outside to reduce the smell. Hadn’t done that in a while. Have you been out in the city and you needed to pee real bad but all…

In Buddhism illness, age and death are sometimes referred to as divine messengers because they can teach us stark truths about our world. We can ignore these messages 🙈, or fight them. Nevertheless, as far as I can tell, everyone is ill at times, ages, and eventually dies. The messages are said to be divine because understanding and accepting them can nurture a greater appreciation for life, more peace, etc. Good stuff.

I have found Buddhism to be a great source of wisdom, which can generally be applied at many, many levels. I write software for a living and so…

Last week I wrote about how Kotlin coroutines can take over 100ms to initialize on Android. Knuttyse asked if I used an “optimized production build” for my measurements and the truth is I had not. I thought, how big of a difference can it make anyway? So I tried, and it made a 1000% difference.

By Alex E. ProimosCC BY 2.0

For my initial measurement I’d used a debug build. This time I started with a release build and enabled minification and resource shrinking. I ran the same bit of code as before:

On a Moto G6 running Android 9, where launching the coroutine had…

I’ve retracted the conclusion reached in this article. The measurements were made on a debuggable app and differ surprisingly from production performance: Don’t Run Benchmarks on a Debuggable Android App (Like I Did)

Did you know that there is a significant initialization cost to Kotlin coroutines? Well, maybe not significant in all cases, but when it comes to app startup, every millisecond boost is worth taking. I found that simply launching the first coroutine can take over 100ms. 😱

Most applications perform a variety of tasks on startup: initializing third-party libraries, setting up services or periodic jobs, making HTTP requests…


Software developer, meditator, friend. All I’m trying to say is, peace and love.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store