• [^] # Re: Intérêt

    Posté par (site web personnel) . En réponse au journal MenuetOS : 1.0. Évalué à 10.

    Pour de petites fonctions, un humain est capable de faire dans certains cas mieux que le compilateur. En revanche, dès que l'algorithme est un minimum complexe (et cela arrive vite), il devient extrêmement difficile de réorganiser tout un code pour améliorer les performances. Sans parler de tout ce qui est maintenabilité...

    Je développe dans mon temps libre un OS pour x86 et lorsque j'ai besoin d'un truc très optimisé, je commence par le faire en C et ensuite je check le code assembleur pour voir s'il n'y avait pas moyen de faire mieux. Dans ce cas, je regarde si je peux modifier le code C pour faire en sorte que le compilateur soit capable de faire une optimisation supplémentaire (réorganisation du code, portée des variables, attributs, etc). Et si vraiment on est dans un cas particulier alors je réfléchis à la possibilité de sortir de l'assembleur. Mais c'est vraiment le cas ultime. Comme souvent, on gagne plus de perfs en repensant les algorithmes et structures de données qu'en essayant de faire de la micro-optimisation. Et déjà que c'est la misère pour trouver certains bugs en C, alors en assembleur :/.