|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 294 ![]() |
L'idiome "copie sur écriture" (aussi connu sous les noms "copy-on-write", "COW" ou "implicite sharing") est une technique de programmation (qui devrait être) bien connue des développeurs utilisant Qt. Cette technique peut éviter les copies inutiles de gros objets (comme QString ou QVector), en réalisant la copie uniquement lors de la première modification d'un objet.
Dans cet article, Herb Sutter détaille quelques implémentations possibles et comparer leurs performances respectives. Guru Of the Week n° 43 : copie sur écriture - première partie Connaissiez-vous cet idiome et son utilisation dans Qt ? Pensez-vous que les implémentations ou l'intérêt de cet idiome soient modifiés par l'arrivée du C++11 ?Retrouver l'ensemble des Guru of the Week sur la page d'index.
__________________
Merci à toutes les bénévoles avec qui j'ai travaillé sur les rubriques C++, Qt et Jeux. Retrouvez mes anciennes publications sur GitHub et suivez mes futures publications sur Google+. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
10
|
|
|
#2 | |
|
Expert Confirmé
![]() Développeur informatique Inscription : décembre 2008 Messages : 777 ![]() |
Il y a un petit problème de précision, au niveau des comparaisons de performances.
Citation:
Bon, ok, c'est jouer sur les mots, je l'accorde. |
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 294 ![]() |
Dans l'absolue, oui. D'un autre côté, l'article original date de 1998 (14 ans, presque plus vieux que moi
) on pouvait considérer que 1 char = 1 caractère = 1 byte
__________________
Merci à toutes les bénévoles avec qui j'ai travaillé sur les rubriques C++, Qt et Jeux. Retrouvez mes anciennes publications sur GitHub et suivez mes futures publications sur Google+. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
00
|
|
|
#4 |
![]() ![]() |
En fait, les correspondances 1char = 1 caractères = 1 byte et sizeof(char) = 1 sont vraies quoi qu'il arrive...
La correspondance qui n'est pas forcément vraie, c'est 1byte = 8 bits = 1 octet. On a en effet trop souvent tendance à traduire byte par octet, parce que c'est ce qui se fait de manière classique sur les architectures PC, mais on pourrait parfaitement envisager une architecture dont le byte serait en fait codé sur 16 bits (pour supporter nativement le wchar_t A ce moment là, les correspondances 1 char = 1 caractère = 1 byte et sizeof(char) = 1, seraient toujours aussi vraies, même si, selon les tailles que l'on constate actuellement, nous aurions des correspondances proches de
C'est la raison pour laquelle C++ n'impose strictement rien hormis char <=short <= int <= long long et sizeof(char) = 1
__________________
en bas de page
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 294 ![]() |
Pour "caractère", je pense que Freem parlait aussi du fait que les caractères ne sont plus forcement codés sur un char et donc pas 1 byte.
__________________
Merci à toutes les bénévoles avec qui j'ai travaillé sur les rubriques C++, Qt et Jeux. Retrouvez mes anciennes publications sur GitHub et suivez mes futures publications sur Google+. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
00
|
|
|
#6 | |
![]() ![]() |
Citation:
Mais il ne sont plus forcément codé sur un octet Là est toute la différence
__________________
en bas de page
|
|
|
|
01
|
|
|
#7 |
|
Expert Confirmé
![]() Pierre Ingénieur développement logiciels Inscription : juin 2007 Messages : 1 354 ![]() |
il ne ferait pas la distinction entre le caractère, symbole atomique d'un texte, et le char, taille de variable destinée à contenir un certain ensemble de caractère?
Conviens-en, sizeof(wchar_t) n'est pas forcément 1…
__________________
Mes principes de bases du codeur qui veut pouvoir dormir:
|
|
00
|
Copyright © 2000-2013 - www.developpez.com