(Courriels de diversion: <cursives@baserai-gargouillements.com> <aviserait@mesestimee-recachettes.com> <usurperas@nabot-affreter.com> <nicherai@spolierais-assignerions.com> <sablier@surexcitant-rassoyant.com> <mobiliserai@espacerons-croquee.com> <dedommagees@boutonnerez-decante.com> <desertaient@grippent-devront.com> <enclume@reconcilierez-inserent.com> <gares@egrenerais-infiltree.com> )


Guillaume Betous a écrit :

Dans le cas ou UTF-8 serait pénalisé, pensez-vous que l'ajout d'une instruction dédiée UTF-8 dans un processeur ait un sens?

vu la puissance actuelle des processeurs, vu qu'en utilisation bureautique (manipulation de caractères) ils tournent a qqchose comme 1% d'utilisation CPU, je ne vois pas trop l'interet d'un tel jeu d'instructions.


ensuite, les caches fetchent de toutes facons 64bits sur les nouveaux processeurs 64bits, donc ca blaste pas mal (-:
En fait, je parlais des performances des algorithmes plus que données traitées.
Maintenant, j'en conviens, il se peut que dans beaucoup d'application l'usage de chaînes de caractères ne soit pas critique.
Mais certaines applications comme par exemple les parseurs, ou les correcteurs orthographiques peuvent avoir besoin de traiter rapidement .


A titre d'exemple, dans le cas d'une fonction de comptage de «points de code», définis par unicode comme allant de U+0000 à U+10FFFF , la version UTF-16 va 2 à 3 fois plus vite qu'UTF-8. Et une version UTF-32, ou UTF-16 limitée à la plage U+0000 à U+FFFF serait bien plus rapide.
Par ailleurs, je ne suis pas sur que des processeurs 64 bits permettent d'optimiser le code unicode, vu que les algorithmes UTF-8 et UTF-16 sont fortement orientés 8 et 16 bits. De mon point de vue ils pourront au mieux inciter à passer à UTF-32, avec les problèmes d'interopérabilité posés par les little et big endian.


Si jamais quelqu'un est intéressé par le code source de ce test, je l'ai encore sous la main au moment où j'écris ces lignes.

Ci-après, le résultats de ce test, sur quelques extraits de textes de langues populaires:

comptage:../data/essai/essai_en anglais
27660, 27660, 27922
comptage utf-16: 99 microsecondes
comptage utf-8: 128 microsecondes

comptage:../data/essai/essai_fr français
967850, 967850, 1000000
comptage utf-16: 7895 microsecondes
comptage utf-8: 7282 microsecondes

comptage:../data/essai/essai_ja japonais
425284, 425284, 1000000
comptage utf-16: 3841 microsecondes
comptage utf-8: 7691 microsecondes

comptage:../data/essai/essai_ru russe
28472, 28472, 46862
comptage utf-16: 104 microsecondes
comptage utf-8: 689 microsecondes

comptage:../data/essai/essai_zh chinois
58905, 58905, 94347
comptage utf-16: 292 microsecondes
comptage utf-8: 638 microsecondes



--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>