2. Motwin
• Clients : Betclic, Consors Bank, BNP Paribas, CST,
AXA, La Banque Postale
• 15 personnes (13 à Grenobles, 2 à Paris)
2
Motwin édite un logiciel
d’optimisation d’APIs pour des
applications sensibles au temps pour
mobiles, objets connectés et web.
3. Définitions / rappels
• Latence ≠ bande passante
– Latence réseau (RTD) = délai d’un aller-retour pour le
plus petit paquet possible
– Bande passante = quantité total de données
transférable en même temps
• Latence applicative : délai entre l’action d’un
utilisateur et les conséquences de cette action
– Souvent l’affichage de nouvelles informations
3
4. 4
Notre cerveau
Sources : Public Library of Science, Appdynamics, “Timing responses to questions in dialogue”, Sofia Strömbergsson, Anna
Hjalmarsson, Jens Edlund, David House - Department of Speech, Music and Hearing, KTH, Stockholm, Sweden
Nombres Arabes (150ms)
Comparaison (190ms)
Mouvement (330ms)
Correction d’erreur (470ms)
Temps de réaction :
100 à 500 ms
Temps de réponse à une
question entre humains :
100 à 500 ms
Mémoire court terme :
500 ms
Mémoire sensorielle
Durée : 0,5 max pour visuel
2 sec pour audio
Mémoire court-terme
Durée : 30 secondes max
Mémoire long-terme
Temps de réponse
moyenne à une question
(milliseconde)
460
310
180
90
Question ouverte
Question à réponse
simple
Question dont la
réponse est Oui/Non
Question incluant les
réponses possibles
5. 5
Effet du temps de réaction d’une
application sur l’homme
5
Délai de
réaction d’une
application
Impact /
sensation sur
l’utilisateur
0,1 Secondes0,5 2 3 5 101 4
« Instantané »
Parfait (eq.
Relation
humaine)
Sans attente
« Lent »
40 à 60%
d’abandon sur le
web desktop
« Très Lent »
30 à 40%
d’abandon sur le
web mobile
Perte d’attention
Enervement
Fatigue
Temps
« normal »
6. 6
Pour Google, Amazon, Wallmart, Redhat,
ebay, …
6Source : http://blog.radware.com/applicationdelivery/applicationaccelerationoptimization/2013/06/web-performance-poverty-line/
Source : http://www.ebaytechblog.com/2013/03/29/measuring-real-user-experience-with-site-speed-gauge/#.VFIHLvTF9CN
Source : http://www.webperformancetoday.com/2011/11/08/velocity-faster-mobile-sites-business-kpis-case-studies/
- 100 ms = - 1% Revenue & - 5% pages vues
« If the display time increases
500ms , research fell by 25% »
« If the display time
increases by 100 ms, the
revenue goes down to 1% »
7. 7
Le temps de communication
est une fonction de
La perception,
La latence,
Le débit,
La quantité de donnée ,
Le nombre de requêtes,
Le protocole.
Afficher des éléments rapidement
Programmation : flush , Post-load , pre-load
CDN
Akamai Technologies, Edgecast,
level 3, Amazon, OVH, CDNetworks
Mémoires Cache
Au niveau serveur et devices
Préparer la mémoire cache en avance
Infrastructures
Bande passante & CPU
Compresser
Gzip/deflate via accept-
encoding / content-
encoding
Formats de
données
Ex : JSON > HTML
Protocole de communication (binaire,
push, websocket,SSE,…)
Qualité de programmation
Réduire le nombre de request en les regroupant, Mettre les scripts après le
maximum de requests , Eviter les requêtes interdépendantes , Domain
Sharding, Web : éviter les expressions CSS, les Redirects, ….
Adapter
Quantité / qualité selon
le device
9. Netflix solution (1/2)
9
Interface Table Doc JSON JSON Patch
Taille tableau dépend du device
JSON patch : standard de
gestion des évolutions
d’un document par
versionning
Simplification of Netflix (JSONG +
Cache)
10. Netflix solution (2/2)
10
Device Cache ServerApplication
First visit
Second visit or
during first visit
1 request : JSON
JSON Patch
= 0 Latency
Simplification of Netflix (JSONG +
Cache)
12. 12
Latence réseau (RTD)
4G = Fibre optique Trans-continental
0 100 200 300 400
EDGE/2G
3G
4G
Trans-continental optic fiber
Trans-country optic fiber
ADSL
In-town private network
Source : http://www.digitalsociety.org/2010/08/conflating-broadband-speed-with-internet-speed-is-misleading/
http://www.dslreports.com/
Pour l’ADSL en HTTP la première donnée « utile »
arrive après 40 ms, en 3G après 300 ms
13. 131313
« Hello !»
« Yes ?! »
« Cool ! »
« I want this »
« OK »
« Here! »
HTTP
1st page
2nd page
« Hello !»
« Again?! »
« Cool ! »
« I want this »
« OK »
« Here! »
1st page – Data refresh (*)
« Yeah … »
« Cool !»
« OK »
« Here! »
« Hello !»
« Yes ?! »
« I want this »
« OK »
« Tiens! »
1st page
2nd page
«I want this »
« Here! »
1st page – data refresh
« Here! »
Bidirectional protocol
Note: (* ) upgradeable scenario with long polling
Protocole « classique » versus protocole
bidirectionnel (full-duplex)
« Hello !»
« I want this »
« Cool ? »
14. 14
Conclusions
• Au-delà de 2 secondes de temps de réaction,
l’expérience utilisateur sera pauvre
• Pour créer un expérience émotionnelle,
l’objectif est un temps de réaction de 500ms
• Il est quasiment impossible d’obtenir ces
temps de réponse sur mobile sans mettre en
œuvre des protocoles full-duplex
• Les grands investissent sur la latence … et
plus il y aura d’applications rapides, plus les
lentes seront mal vécues !
15. 15
Merci. Question ?
nicolas.babel@motwin.com
@motwin_inc
www.motwin.com
Prochain produit : www.streamdata.io
Proxy aaS (API Poll JSON) {API Incremental Push}
Beta testeur recherché !
Motwin news #1
Motwin news #2
Hackathon « Mobile Banking Factory ² ». 50000€ de prix
pour des applications mobiles sur la « mobilité
connectée » (CAStore, PSA, Uber, Orange, … et Motwin)
mobilebankingfactory2.bemyapp.com