Skip to content

Instantly share code, notes, and snippets.

View sethwalker's full-sized avatar

Seth Walker sethwalker

View GitHub Profile

Native app performance metrics

This is a draft list of what we're thinking about measuring in Etsy's native apps.

Currently we're looking at how to measure these things with Espresso and Kif (or if each metric is even possible to measure in an automated way). We'd like to build internal dashboards and alerts around regressions in these metrics using automated tests. In the future, we'll want to measure most of these things with RUM too.

Overall app metrics

  • App launch time - how long does it take between tapping the icon and being able to interact with the app?
  • Time to complete critical flows - using automated testing, how long does it take a user to finish the checkout flow, etc.?
  • Battery usage, including radio usage and GPS usage
  • Peak memory allocation

Keybase proof

I hereby claim:

  • I am sethwalker on github.
  • I am sethwalker (https://keybase.io/sethwalker) on keybase.
  • I have a public key whose fingerprint is B6AA 7E52 A0E9 F06D 8B18 1DB9 EACF B671 071D E0A2

To claim this, I am signing this object:

@sethwalker
sethwalker / libraries slash cran_helper.rb
Last active December 22, 2015 21:09
quick and dirty chef helper for installing packages from CRAN
# modified from http://stevendanna.github.io/blog/2011/12/26/snow-and-chef/
module CranHelper
def self.r_package_is_installed(package_name)
r_code = "if (any(installed.packages()[,1] == '#{package_name}')) { quit('no', 0, FALSE) }; quit('no', 1, FALSE)"
"echo \"#{r_code}\" | R --no-save --no-restore -q"
end
def self.r_package_install(package_name)
r_code = "install.packages('#{package_name}')"
@sethwalker
sethwalker / gist:752693
Created December 23, 2010 07:20
testing reflection overhead
<?php
class HasMagicMethods {
protected function protectedFoo() {
return "called protected method";
}
public function __call($name, $arguments) {
return "called magic method $name";
#!/bin/bash
curl "http://umbrellatoday.com/forecasts" --data-ascii "<forecast><location-name>`echo $1`</location-name></forecast>" -H "Accept: text/xml" -H "Content-Type: text/xml" -i 2>/dev/null | awk '/^Location:/ { print $2 }' | xargs curl -H "Accept: text/xml" 2>/dev/null | perl -ne '/<answer>(\w+)<\/answer>/ && print uc("$1\n")'
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerFactory
http_sampler = HTTPSamplerFactory.newInstance
http_sampler.setDomain the_domain
http_sampler.sample