Toutes les instructions suivantes font la même chose: mettre %eaxà zéro. Quelle voie est optimale (nécessitant le moins de cycles machine)? xorl %eax, %eax mov $0, %eax andl $0, %eax
Toutes les instructions suivantes font la même chose: mettre %eaxà zéro. Quelle voie est optimale (nécessitant le moins de cycles machine)? xorl %eax, %eax mov $0, %eax andl $0, %eax
Si j'ai un entier n et que je veux connaître la position du bit le plus significatif (c'est-à-dire que si le bit le moins significatif est à droite, je veux connaître la position du bit le plus à gauche qui est un 1), Quelle est la méthode la plus rapide / la plus efficace pour le découvrir? Je...
Laquelle de ces deux méthodes est en C plus efficace? Et que diriez-vous: pow(x,3) contre. x*x*x //
Considérez la fonction suivante: void func(bool& flag) { if(!flag) flag=true; } Il me semble que si l'indicateur a une valeur booléenne valide, cela équivaudrait à le définir inconditionnellement true, comme ceci: void func(bool& flag) { flag=true; } Pourtant, ni gcc ni clang ne...
Il y a de nombreuses années, les compilateurs C n'étaient pas particulièrement intelligents. Comme solution de contournement, K&R a inventé le mot-clé register , pour indiquer au compilateur que ce serait peut-être une bonne idée de conserver cette variable dans un registre interne. Ils ont...
std::swap()est utilisé par de nombreux conteneurs std (tels que std::listet std::vector) pendant le tri et même l'affectation. Mais l'implémentation std de swap()est très généralisée et plutôt inefficace pour les types personnalisés. Ainsi, l'efficacité peut être gagnée en surchargeant...
Considérez le code suivant ( pest de type unsigned char*et bitmap->widthest d'un type entier, qui est exactement inconnu et dépend de la version d'une bibliothèque externe que nous utilisons): for (unsigned x = 0; x < static_cast<unsigned>(bitmap->width); ++x) { *p++ = 0xAA; *p++ =...
Fermé. Cette question ne respecte pas les directives de Stack Overflow . Il n'accepte pas les réponses actuellement. Vous souhaitez améliorer cette question? Mettez à jour la question pour qu'elle soit pertinente pour Stack Overflow. Fermé il y a 3 ans . Améliorez cette question Connaissez-vous...
Pour citer les documents : Lors de la création d'un index, le nombre associé à une clé spécifie la direction de l'index, il doit donc toujours être 1 (croissant) ou -1 (décroissant). La direction n'a pas d'importance pour les index à clé unique ou pour la récupération à accès aléatoire, mais elle...
J'ai vu une assez grande variation dans les temps de réponse concernant les LIKErequêtes à une table particulière dans ma base de données. Parfois, j'obtiens des résultats dans un délai de 200 à 400 ms (très acceptable), mais d'autres fois, cela peut prendre jusqu'à 30 secondes pour renvoyer les...
Ceci est une question sur la façon de déterminer la grille CUDA, les tailles de bloc et de filetage. Ceci est une question supplémentaire à celle publiée ici . Suite à ce lien, la réponse de talonmies contient un extrait de code (voir ci-dessous). Je ne comprends pas le commentaire "valeur...
J'ai trouvé cette question sur les langues optimisant la récursivité de la queue. Pourquoi C # n'optimise pas la récursivité de queue, chaque fois que possible? Pour un cas concret, pourquoi cette méthode n'est-elle pas optimisée en boucle ( Visual Studio 2008 32 bits, si cela compte)?: private...
J'ai créé deux programmes C Programme 1 int main() { } Programme 2 int main() { //Some Harmless comments } AFAIK, lors de la compilation, le compilateur (gcc) doit ignorer les commentaires et les espaces blancs redondants, et donc la sortie doit être similaire. Mais quand j'ai vérifié les md5sums...
Le code ci-dessous fonctionne sur Visual Studio 2008 avec et sans optimisation. Mais cela ne fonctionne que sur g ++ sans optimisation (O0). #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t...
Résumé: Je recherche le moyen le plus rapide de calculer (int) x / (int) y sans obtenir une exception pour y==0. Au lieu de cela, je veux juste un résultat arbitraire. Contexte: Lors du codage d'algorithmes de traitement d'image, j'ai souvent besoin de diviser par une valeur alpha (accumulée). La...
Je ne sais pas si le code suivant peut provoquer des calculs redondants ou est-il spécifique au compilateur? for (int i = 0; i < strlen(ss); ++i) { // blabla } Sera strlen()calculé à chaque fois que
Fermé . Cette question doit être plus ciblée . Il n'accepte pas les réponses actuellement. Vous souhaitez améliorer cette question? Mettez à jour la question pour qu'elle se concentre sur un problème uniquement en éditant ce message . Fermé il y a 2 ans . Améliorez cette question La maximisation...
Quels sont quelques conseils pour réduire l'utilisation de la mémoire des applications .NET? Considérez le programme C # simple suivant. class Program { static void Main(string[] args) { Console.ReadLine(); } } Compilé en mode version pour x64 et s'exécutant en dehors de Visual Studio, le...
Quelle est la différence entre Dictionary.add(key, value)et Dictionary[key] = value? J'ai remarqué que la dernière version ne lance pas de message ArgumentExceptionlors de l'insertion d'une clé en double, mais y a-t-il une raison de préférer la première version? Edit : Quelqu'un at-il une source...
J'essayais donc d'écrire le n ème nombre dans la séquence de Fibonacci dans une fonction aussi compacte que possible: public uint fibn ( uint N ) { return (N == 0 || N == 1) ? 1 : fibn(N-1) + fibn(N-2); } Mais je me demande si je peux rendre cela encore plus compact et efficace en changeant (N == 0...