Question

AMD Bulldozer a réussi dans l'espace serveur mais a mal fonctionné sur le bureau.Si je comprends bien, une cause majeure de ceci est que les applications serveur ont été réécrites pour utiliser les instructions spéciales de Bulldozer, qui ne sont toujours pas utilisées dans les applications de bureau.Est-ce que nous nous attendons à ce que le compilateur juste à temps (JIT) les utilise dans la version 4.5, peuvent-ils / vont-ils être rétroportés en 4.0?

Clarification: d'après ce que j'ai compris, le JIT se compile pour la machine sur laquelle il s'exécute, pas pour la machine sur laquelle il a été compilé en instructions IL.Il a été affirmé qu'à cause de cela, les applications JIT peuvent en fait avoir des performances plus élevées que le code normal qui est compilé et lié directement au binaire.

Était-ce utile?

La solution

Malheureusement, le .NET JIT n'est pas particulièrement sophistiqué en termes de performances:

  • Même sur les serveurs, il n'effectue pas de lourdes optimisations comme le fait un compilateur C ++, bien qu'il ait les mêmes informations qu'un compilateur C ++.Il ne fait tout simplement pas certaines choses
  • Il utilise des instructions spéciales uniquement pour certaines opérations avec des flottants
  • Le x64 a même des problèmes de qualité avec des optimisations non valides effectuées
  • Certaines optimisations évidentes, comme l'analyse d'échappement, manquent

Il semble que le JIT ne soit pas développé avec un budget particulièrement élevé.Je doute donc que de telles instructions spécialisées soient utilisées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top