|
|
1
2
|
\section{Uses and Requirements}
\label{sec-usage}
|
|
|
3
4
|
To motivate the need for a value measure, we return to the questions posed in
|
|
|
5
6
7
8
|
the introduction and explore each in more depth. These use cases also help us
develop requirements for our measure, which are summarized at the end of this
section. We begin by exploring the basic question at the heart of the
problem: what is the value of an app?
|
|
|
9
|
|
|
|
10
|
\subsection{What is App Value?}
|
|
|
11
12
|
All smartphone users intuitively realize that smartphone apps differ in
|
|
|
13
|
value---an email client, for example, is probably more valuable than a app
|
|
|
14
|
that makes random sounds. But is it possible to quantify these subjective
|
|
|
15
16
17
|
distinctions and produce a value measure? To argue that this is possible we
present two experiments that elucidate smartphone app value in the form of
both ordinal and cardinal utilities:
|
|
|
18
19
20
|
%
\begin{enumerate}
|
|
|
21
|
\item You will be required to remove some number of apps from your
|
|
|
22
23
24
|
smartphone. Order the apps you are currently using from least important to
most important. The N least important apps will be removed.
|
|
|
25
26
|
\item You will be required to create an energy budget for the
apps you use on your smartphone. During any discharging cycle, once an app runs out of energy
|
|
|
27
28
29
30
31
32
33
|
you will not be able to use it until you plug in your smartphone. Allocate
battery percentages to each app you use.
\end{enumerate}
%
We plan to engage smartphone users in studies to explore in more detail which
of these approaches is more effective, comparing them by comparing users'
|
|
|
34
35
36
37
38
39
40
41
42
43
44
45
|
levels of satisfaction under each scenario. In the first experiment we ask
users to uninstall apps because often apps have a background component that
keeps consuming energy even when the app is no longer being used. For our
value measure we are hopeful that users will prove capable of assigning
cardinal utilities to apps---as in the second experiment---since this matches
most directly with our proposed value measure and could provide ground truth
for a value measure computed automatically. The second experiment also
engages users directly in the task of allocating energy, which is one way
that a value measure could be used. However, if ordinal utilities prove more
intuitive we can still compare the ordering generated by our measure with the
ordering generated by users, although the values of the measure will still
require justification.
|
|
|
46
47
|
In either case, we believe that these experiments do suggest the existence of
|
|
|
48
49
50
|
quantifiable value for smartphone apps. We are not claiming, however, that
these setups are the only way or the right way to measure value. In both
cases low value measures have fairly extreme consequences---the app is
|
|
|
51
|
actually removed or rendered unusable. This may cause users to overvalue
|
|
|
52
|
essential tools such as communication apps and undervalue inessential apps
|
|
|
53
|
that nevertheless provide them with a great deal of enjoyment such as games.
|
|
|
54
55
56
57
|
However, given that our goal is a value measure that can be paired with and
used to allocate energy, and that energy exhaustion has such severe
consequences on the usability of all apps, a more extreme experimental setup
may be justified.
|
|
|
58
59
60
|
\subsection{Comparing Apps}
|
|
|
61
62
63
|
With some confidence that smartphone app value can be quantified, we now
proceed to motivate the idea of a value measure by discussing several ways in
which it could be used.
|
|
|
64
65
66
67
68
|
The most powerful use of a value measure would be to compare apps by
comparing their energy efficiency, therefore overcoming the most critical
flaw in current attempts to compare or categorize apps by their energy
consumption alone~\cite{carat-sensys13}. Consider attempting to compare a
|
|
|
69
|
chat client and video conferencing app by only measuring their energy
|
|
|
70
71
|
consumption. Unless it is terribly written, the chat client will consume less
energy. But this does not mean that it is efficient, or that the
|
|
|
72
|
video conferencing app is not. Ultimately, all the energy consumption
|
|
|
73
|
comparison truly reveals is that the two apps do different things---which we
|
|
|
74
|
already knew.
|
|
|
75
|
|
|
|
76
77
78
79
80
|
Using energy consumption alone even makes apples-to-apples comparison of the
same app difficult. Given an app that consumes twice as much energy on
Alice's smartphone than on Bob's, the question of why is left unanswered by
pure energy measures. Even if usage time can be used to normalize the
comparison, power consumption alone cannot incorporate differences due to the
|
|
|
81
|
different app features or app configurations used by Alice and Bob.
|
|
|
82
|
|
|
|
83
84
85
|
By computing value and, thus, energy efficiency, we can overcome these
weaknesses. A value measure should allow us to compare the efficiency of two
apps in different categories based on how efficiently they use energy to
|
|
|
86
87
88
89
90
91
|
deliver user value. Comparisons within the same app category should allow
users to select the most efficient email client or web browser. Aggregating
results over all users, differences in app energy efficiency should reflect
how well the app is written and how well it predicts and adapts to users, not
just differences in the core features it provides. When comparing two users
using the same app, differences in efficiency should reflect differences in
|
|
|
92
|
app configurations or app features.
|
|
|
93
|
|
|
|
94
95
|
\subsection{Evaluating App Changes}
|
|
|
96
97
98
99
100
|
A second use for the value measure is helping developers improve their apps
and deliver more value per joule. Today's energy profiling tools may be able
to show the energy impact of adding a new feature or changing the way that a
particular feature is implemented, but energy consumption alone is not
sufficient to apply Amdahl's Law properly to the problem of improving app
|
|
|
101
|
energy efficiency. Developers should strive to make the parts of their app
|
|
|
102
103
104
105
|
that generate a large amount of value as energy-efficient as possible, remove
parts that generate little value while consuming a great deal of energy, and
defer work on everything else.
|
|
|
106
107
|
\subsection{Detecting Energy Viruses}
|
|
|
108
109
|
A measure of app value makes it possible to produce a rigorous definition of
the term \textit{energy virus}: an app that produces little to no value per
|
|
|
110
|
joule. The choice of threshold will require some study, as it is probably
|
|
|
111
|
impossible to produce a single efficiency cutoff that cleanly separates
|
|
|
112
113
114
115
|
malicious apps from ones that are merely poorly-written. This definition of
energy virus can also be made on a per-user basis. This is important since a
non-malicious but poorly-written app that continues to consume energy even
long after the user has stopped using it---and it has stopped providing
|
|
|
116
117
118
|
value---functions as an energy virus for that user, but may not for a user
that interacts with it more frequently.
|
|
|
119
120
|
\subsection{Prioritizing System Resources}
|
|
|
121
|
An app value measure should be able to be used to prioritize limited
|
|
|
122
123
124
125
126
|
system resources, particularly energy but also storage, memory, networking
bandwidth and processor time. While mechanisms differ, most previous attempts
to control energy consumption rely on some form of rate control which
allocates a rate to each app and enforces that rate by slowing or stopping
the app when it exceeds its
|
|
|
127
128
|
allocation~\cite{odyssey-osr99,cinder-eurosys11,Zeng:2003,pixie-sensys08}.
However, all of these previous efforts have ignored the critical question of
|
|
|
129
130
131
|
how rates should be set. No matter how effective the enforcement mechanisms
are, systems that rely on rates will fail if they provide the same rate to
Skype and Snapchat, or to a very efficient app and an energy virus.
|
|
|
132
|
|
|
|
133
|
A measure of value can be used alone or in conjunction with energy consumption
|
|
|
134
135
|
to help prioritize limited energy resources. The simplest approach is to
attempt to enforce an energy allocation based on the relative value assigned
|
|
|
136
137
138
139
140
|
to each app. To encourage apps to be more energy efficient, it may also be
beneficial to weight allocations by their energy efficiency, providing a
boost to apps that provide a larger amount of value per joule. While there
are likely many ways to combine energy consumption with a value measure in
order to prioritize energy consumption, it is not clear that energy
|
|
|
141
142
|
consumption can be prioritized effectively without some measure of value. The
same approach can also be applied to determine how much of any limited system
|
|
|
143
144
145
|
resource to allocate to each app,
%with high-value apps gaining priority over
%the processor, memory allocation, networking bandwidth and limited storage.
|
|
|
146
|
Together these resource allocation measures can be designed to ensure that
|
|
|
147
|
high-value apps run smoothly at the expense of lower-value apps.
|
|
|
148
|
|
|
|
149
|
\subsection{Summary of Requirements}
|
|
|
150
|
|
|
|
151
|
The use cases above give rise to a set of requirements for a possible value
|
|
|
152
153
154
155
156
|
measurement:
%
\begin{itemize}
\item It should enable aggregate comparisons between apps across categories and
|
|
|
157
|
users.
|
|
|
158
159
|
\item It should enable comparisons between the same app across users or
|
|
|
160
|
inputs, requiring that it be calculable given data from a single user.
|
|
|
161
162
163
164
|
\item It should enable targeted development by highlighting what parts of an
app generate value and what parts do not.
|
|
|
165
|
\item It should be efficiently computable without unduly consuming the
|
|
|
166
|
resources that it is designed to help manage.
|
|
|
167
168
169
|
\item It should be derived with little to no input from the user.
|
|
|
170
|
\end{itemize}
|