figure lagmeter
authorThomas Pietrzak <thomas.pietrzak@gmail.com>
Tue, 9 Nov 2021 10:54:38 +0000 (11:54 +0100)
committerThomas Pietrzak <thomas.pietrzak@gmail.com>
Tue, 9 Nov 2021 10:54:38 +0000 (11:54 +0100)
figures/lagmeter.tex [new file with mode: 0644]
tex/3-input.tex

diff --git a/figures/lagmeter.tex b/figures/lagmeter.tex
new file mode 100644 (file)
index 0000000..59beec6
--- /dev/null
@@ -0,0 +1,88 @@
+%!TEX root = ../hdrmain.tex
+
+\begin{figure}[htb]
+  \centering
+  \definecolor{cellred}{rgb}    {0.98,0.17,0.15}
+  \definecolor{cellblue}{rgb}    {0.17,0.60,0.99}
+  \definecolor{celldarkred}{rgb}    {0.68,0.15,0.13}
+  \definecolor{celldarkblue}{rgb}    {0.15,0.40,0.69}
+  %
+  \newcommand{\labelcell}[2]{
+  \node[minimum width=1.0cm, minimum height=.75cm,text width=3.0cm, align=center, outer sep=0, column sep=0cm](#1) {\textbf{#2}};
+  }
+  \newcommand{\bluecell}[3]{
+    \node[minimum width=1.2cm, minimum height=1.2cm,fill=cellblue, text=white,text width=1.2cm, align=center, rounded corners=1mm, outer sep=0](#3) at (#1) {#2};
+  }
+  \newcommand{\redcell}[3]{
+    \node[minimum width=1.2cm, minimum height=1.2cm,fill=cellred, text=white,text width=1.2cm, align=center, rounded corners=1mm, outer sep=0](#3) at (#1) {#2};
+  }
+  \newcommand{\darkbluecell}[3]{
+    \node[minimum width=1.2cm, minimum height=1.2cm,fill=celldarkblue, text=white,text width=1.2cm, align=center, rounded corners=1mm, outer sep=0](#3) at (#1) {#2};
+  }
+  \newcommand{\darkredcell}[3]{
+    \node[minimum width=1.2cm, minimum height=1.2cm,fill=celldarkred, text=white,text width=1.2cm, align=center, rounded corners=1mm, outer sep=0](#3) at (#1) {#2};
+  }
+  \newcommand{\dashedcell}[3]{
+    \node[minimum width=1.2cm, minimum height=1.2cm,dashed, text=black, draw=black, text width=1.2cm, align=center, rounded corners=1mm, outer sep=0](#3) at (#1) {#2};
+  }
+  %\tikzexternalenable
+  \begin{tikzpicture}
+    \scriptsize
+    \begin{scope}[x=1mm, y=1mm]
+
+      %\node[anchor=south west] () at (0, 55) {Device};
+      %\draw[very thick] (0,55) -- (170,55);
+
+      \redcell{15,65}{User action}{}
+      \dashedcell{30,65}{HID sent}{mousehid}
+      \darkbluecell{125,65}{Sytem response}{}
+
+      \draw[fill=black!10, rounded corners=2mm] (0,0) rectangle (170,55);
+
+      \node[anchor=south west] () at (0, 10) {Host computer};
+      \draw[very thick] (0,10) -- (170,10);
+
+      \bluecell{45,20}{Raw HID received}{rawhidreceived1}
+        \draw[ultra thick] (45,8) -- (45,12);
+        \node[anchor=north] () at (45, 8) {piezo};
+      \dashedcell{60,20}{HID received}{hosthid}
+        \draw[ultra thick] (60,8) -- (60,12);
+        \node[anchor=north] () at (60, 8) {libpointing};
+      \dashedcell{75,20}{Low-level event}{}
+        \draw[ultra thick] (75,8) -- (75,12);
+        \node[anchor=north] () at (75, 8) {system};
+      \dashedcell{90,20}{Event delivered}{}
+        \draw[ultra thick] (90,8) -- (90,12);
+        \node[anchor=north] () at (90, 8) {toolkit};
+      \dashedcell{105,20}{Window repaint}{}
+        \draw[ultra thick] (105,8) -- (105,12);
+        \node[anchor=north] () at (105, 8) {repaint};
+      \dashedcell{120,20}{Screen update}{}
+        \draw[ultra thick] (120,8) -- (120,12);
+        \node[anchor=north] () at (120, 8) {screen};
+      \darkbluecell{160,20}{Raw HID received}{rawhidreceived2}
+        \draw[ultra thick] (160,8) -- (160,12);
+        \node[anchor=north] () at (160, 8) {photodiode};
+
+      \node[anchor=south west] () at (0, 35) {Arduino};
+      \draw[very thick] (0,35) -- (170,35);
+
+      \bluecell{20,45}{Piezo trigger}{}
+        \draw[ultra thick] (20,33) -- (20,37);
+        \node[anchor=north] () at (20, 33) {piezo};
+      \bluecell{35,45}{Raw HID sent}{rawhidsent1}
+      \darkbluecell{135,45}{Photo-diode trigger}{}
+        \draw[ultra thick] (135,33) -- (135,37);
+        \node[anchor=north] () at (135, 33) {photodiode};
+      \darkbluecell{150,45}{Raw HID sent}{rawhidsent2}
+
+      \path[-{Stealth[length=2mm, width=1.5mm]}, dashed, to path={-| (\tikztotarget)}] (mousehid) edge (hosthid);
+      \path[-{Stealth[length=2mm, width=1.5mm]}, dashed, to path={-| (\tikztotarget)}] (rawhidsent1) edge (rawhidreceived1);
+      \path[-{Stealth[length=2mm, width=1.5mm]}, dashed, to path={-| (\tikztotarget)}] (rawhidsent2) edge (rawhidreceived2);
+
+    \end{scope}
+  \end{tikzpicture}
+  %\tikzexternaldisable
+  \caption[LagMeter measurement process.]{LagMeter measurement process.}
+  \label{fig:lagmeter}
+\end{figure}
index 2bde8cb8ca6debc719e096a9856760f611dae89f..30b16f1d75ecf57c89c8f7d0d1cd2a9eaff3d44d 100644 (file)
@@ -311,24 +311,23 @@ It is a methodology and study about the latency of touch-based interactive syste
 Every interactive system has a delay between the moment users perform an action and when the system produces a response.
 This delay is refered to as \defword{end-to-end latency}.
 This latency is known to cause performance and usability issues~\cite{deber15,jota13,teather09,waltemate16}.
-Therefore, there are research studies about strategies to mitigate these effects or reduce latency~\cite{nancel18}.
+Therefore, there are research studies about strategies to mitigate these effects or reduce latency~\cite{cattan15,nancel18}.
 
 In order to reduce latency or its effects, it is importantto measure it, and understand the contribution of each part of the system to it.
-There are many possible sources of latency: the input and output, the software and hardware, the device and the host.
-Typical latency measurement methods used high-speed cameras~\cite{ng12,steed08,teather09}.
-The method is simple, but it is difficult to make many measurements and it is impossible to slice the latency between the several steps of the process.
+There are many possible sources of latency: input and output, software and hardware, device and host.
+Typical latency measurement methods consisted in counting frames on videos made with a high-speed camera~\cite{ng12,steed08,teather09}.
+This method is simple, but tedious.
+It is difficult to make large series of measurements and it is impossible to identify the  main sources of latency.
+Other methods enable repetitive measures, but they are adapted to specific input types~\cite{casiez15,deber16}.
+Therefore, we created the LagMeter: a latency measurement tool that facilitates repetitive measures, and enables the slicing of latency between several parts of the interactive system~\cite{casiez17}.
+It measures the end-to-end latency between any tap-based input (keyboard, mouse, touchpad, touchscreen, …) and the resulting change on the screen.
 
-%Any interactive system exhibits some delay between a user’s action and the corresponding system response, known as the end-to-end latency. This latency is caused by many factors pertaining to the input device, the operating system (e.g. de- vice drivers, control and communication policies), the soft- ware toolkits and application used, as well as the output de- vice. Depending on its amount and variation over time (jit- ter), the end-to-end latency can degrade the action-perception loop, impact user performance and make the system feel less responsive and interactive.
+
+%Any interactive system exhibits some delay between a user’s action and the corresponding system response, known as the end-to-end latency. This latency is caused by many factors pertaining to the input device, the operating system (e.g. device drivers, control and communication policies), the soft- ware toolkits and application used, as well as the output device. Depending on its amount and variation over time (jitter), the end-to-end latency can degrade the action-perception loop, impact user performance and make the system feel less responsive and interactive.
 %Latency has long been known to affect performance and user perception in indirect pointing tasks, Virtual Reality and touch interactions [1, 8–10, 12, 13, 16, 21]. While today’s touchscreens show latencies ranging from 50 to 200 ms [14], it is known that users can perceive touchscreen latency as low as 2 ms [14] and that performance for dragging tasks degrades above 25 ms [10]. In indirect interaction, latencies above 50 ms are noticed and affect performance [8, 9].
 %Considering the importance of latency in interactive systems, it is essential to measure and report it, to assess how it af- fects users or the results of an experiment. Until recently, its measure has been a tedious process based on the use of external cameras [11, 14, 15, 18–21] but methods have been proposed to ease the process through interactive tools [2, 6] or repeated measures [3, 7]. These tools can be used to try to reduce latency but it can be a trial and error process without the understanding of the influence of each part of a system. In addition, none of the measurement tools allows to measure end-to-end latency while a user interacts with the system, and existing tools are limited to specific technologies.
 
-
-Latency \cite{casiez17}
-
-previous work on latency measurement:
-camera, counting frames
-hammer time… 
-mouse casiez 2016
+\input{figures/lagmeter.tex}
 
 Our method is usable with any tap-based input: keyboard, mouse, touchpad, touchscreen.
 Slicing of latency with software probes.