mmap 省掉的到底是哪一次拷贝
「mmap 是零拷贝所以更快」——省的是哪一次,代价换到哪去了?
Copiez la consigne, puis choisissez un modèle. Il joue l'examinateur et vous interroge acte par acte au lieu de vous donner la réponse.
Sur un téléphone où l'application est installée, le système l'ouvre directement. Dans WeChat, les liens n'ouvrent pas les applications externes : ouvrez-le d'abord dans un navigateur.
Le texte copié se termine par le corrigé dont le modèle se sert pour vous évaluer. Ne le lisez pas avant : ce qui compte, c'est de l'avoir déduit vous-même.
它会先让你把数据流一站一站画出来,然后问:省掉的是哪一次拷贝、又多花了什么。
最反直觉的一条在第三幕:顺序读大文件时 mmap 经常更慢 —— 一页一页缺页的开销可能比那一次 memcpy 还大。这一份会逼你把这两个数都算出来再下结论。
顺带治一个测性能时的常见错误:你测出来的延迟,可能根本没碰磁盘。
Ce que celle-ci travaille
Ce texte dans le dépôt (la solution est à la fin de ce fichier — vous la verrez)
Déjà fait celui-ci ?
Connectez-vous pour noter que vous l'avez fait : la prochaine fois, vous verrez quel jour c'était.
Notes de ceux qui l'ont fait
Comment s'en servir
Cette série enseigne au lieu d'interroger : elle vous guide au lieu de pousser jusqu'à ce que vous n'ayez plus rien à dire. Quand vous bloquez, elle demande d'abord à quel niveau (jamais entendu / je sais mais pas pourquoi / je sais pourquoi mais je n'y arrive pas), puis décide quoi donner. Elle ne donne la réponse qu'après deux tentatives de guidage — et vous demande ensuite de la redire avec vos mots.
Elle vous réclamera des chiffres sans relâche : répondez « ça coûte un peu » ou « c'est plus rapide » et elle vous coupe. Une conclusion sans ordre de grandeur est une conclusion apprise par cœur — c'est exactement ce que cette série travaille.
Comment démarrer
- Choisissez-en une, ouvrez-la, copiez l'invite.
- Collez-la dans une conversation toute neuve, ne dites rien, attendez sa première question.
- Attendez-vous à devoir chiffrer : combien de nanosecondes, de microsecondes, combien de fois plus lent. Dire que vous ne savez pas suffit, elle le note et continue.
Quatre commandes à lancer à tout moment
跳过passer tout de suite à la scène suivante换个说法réexpliquer ce point sous un autre angle直说吧donner la réponse complète, puis me la faire redire复盘sauter à la conclusion et sortir la fiche de bilan
Trois pièges
- Ne lisez pas le corrigé de la fin en premier — sa rubrique « erreurs de raisonnement courantes » contient la réponse à chaque question.
- Ne vous jetez pas sur le jargon. Dire « c'est un défaut de TLB » est facile ; dire de combien c'est moins cher qu'un défaut de page, c'est ça qui compte.
- Quand elle se met à vous complimenter, renvoyez-la à la règle « ne me complimente pas ». Guider n'est pas cajoler.
Pour vous faire les ordres de grandeur : les lectures aléatoires puis le premier octet. Pour le débogage en production : malloc, les blocages TCP, les changements de contexte. Pour le code concurrent : réordonnancement et faux partage.
Se connecter pour écrire une note.