Si ceci est votre goulot d'étranglement pour une raison extrêmement étrange, vous pourriez profiler les 2 approches sur un grand nombre d'itérations pour voir la différence. Vous devriez savoir que même après avoir obtenu ce résultat, vous devriez envisager de faire le même test sur différents appareils puisque la sortie peut changer principalement à cause de différents GPU. Si vous choisissez d'utiliser l'approche B, vous devez probablement entrer une valeur entière et, au lieu de la multiplier et la diviser par 100, essayez d'utiliser les opérations au niveau du bit comme dans Var1<<16 + Var2
pour les entiers 32 bits. Cela signifie qu'une valeur prendra les 16 premiers bits et l'autre les 16 bits suivants et ces opérations sont extrêmement rapides.
Depuis que vous avez posé cette question, il suggère que cette opération n'est pas votre goulot d'étranglement et ne le sera jamais, vous demandez simplement parce que vous voulez que votre code soit rapide. Si cela est vrai alors ne vous embêtez pas avec les performances de vitesse de cet algorithme, mais plutôt demandez-vous comment votre code sera plus maintenable. L'approche A semble être beaucoup plus simple, rendra le code lisible et maintenable, donc je choisirais celui-là. De plus, si vous décidez à un moment donné que ces valeurs deviendront trop grandes pour contenir 2 en 1, vous aurez tout un problème pour convertir le code de B vers A; Si vous utilisez A et que vous voulez un gain de performance supplémentaire (en supposant que B soit plus rapide), il vous suffit d'écrire ces 2 lignes d'algorithme et de commenter un attribut supplémentaire. Donc, dans cette perspective, vous devez choisir A.
Je ne sais pas non plus. (* Indice: le profil pour savoir *) –
Sont également les variables scalaires ou vecteurs. Et s'ils sont vecteurs, quelle dimension ont-ils? – datenwolf
Je pense que c'est juste Glfloat. –