Ca me rappelle quand j'ai commencé à apprendre le langage C, j'ai voulu ré-implémenter tout un tas de fonction de la librairie standard et notamment la fonction strlen.
C'est la simplicité même sur le papier, mais impossible d'obtenir les mêmes performances que la glibc.
Ca remonte pas mal, je me souviens pas de tout mais j'ai du passer d'un truc 4 fois plus lent avec un truc naif du type:
while (s[n]) ++n;
A un truc 2x plus lent avec
while(*(++s))
Et renvoyer la différence avec le pointeur d'origine.
Aujourd'hui, sans même parler d'assembleur je me dirais qu'il faudrait aussi ré-implémenter malloc pour ajouter un ou deux octets à toute allocation pour pouvoir comparer par blocs de 2 octets, mais tu penses pas trop à ce genre de chose quand tu débute :p
[^] # Re: mv
Posté par Florian.J . En réponse au lien Sur quel projet le plus inutile avez-vous travaillé ?. Évalué à 1. Dernière modification le 08 avril 2024 à 09:57.
Ok je comprend mieux ce que tu voulais dire.
Ca me rappelle quand j'ai commencé à apprendre le langage C, j'ai voulu ré-implémenter tout un tas de fonction de la librairie standard et notamment la fonction strlen.
C'est la simplicité même sur le papier, mais impossible d'obtenir les mêmes performances que la glibc.
Ca remonte pas mal, je me souviens pas de tout mais j'ai du passer d'un truc 4 fois plus lent avec un truc naif du type:
while (s[n]) ++n;
A un truc 2x plus lent avec
while(*(++s))
Et renvoyer la différence avec le pointeur d'origine.
Aujourd'hui, sans même parler d'assembleur je me dirais qu'il faudrait aussi ré-implémenter malloc pour ajouter un ou deux octets à toute allocation pour pouvoir comparer par blocs de 2 octets, mais tu penses pas trop à ce genre de chose quand tu débute :p