Questions marquées «assembly»

Questions de programmation en langage d'assemblage (asm). ASSUREZ-VOUS AUSSI DE TAGER avec le processeur et / ou le jeu d'instructions que vous utilisez, ainsi que l'assembleur. AVERTISSEMENT: pour les assemblys .NET, utilisez plutôt la balise [.net-assembly]. Pour Java ASM, utilisez plutôt la balise [java-bytecode-asm].

12
Pourquoi GCC n'optimise-t-il pas a * a * a * a * a * a à (a * a * a) * (a * a * a)?
Je fais une optimisation numérique sur une application scientifique. Une chose que j'ai remarquée est que GCC optimisera l'appel pow(a,2)en le compilant a*a, mais l'appel pow(a,6)n'est pas optimisé et appellera en fait la fonction de bibliothèque pow, ce qui ralentit considérablement les performances. (En revanche, Intel C ++ Compiler , …

14
Est <plus rapide que <=?
Est if( a &lt; 901 )plus rapide que if( a &lt;= 900 ). Pas exactement comme dans cet exemple simple, mais il y a de légères modifications des performances sur le code complexe de boucle. Je suppose que cela doit faire quelque chose avec le code machine généré au cas …

10
Le remplacement d'un compteur de boucles 32 bits par 64 bits introduit des écarts de performances fous avec _mm_popcnt_u64 sur les processeurs Intel
Je cherchais le moyen le plus rapide d'accéder à de popcountgrands tableaux de données. J'ai rencontré un effet très étrange : changer la variable de boucle de unsignedà a uint64_tfait chuter les performances de 50% sur mon PC. La référence #include &lt;iostream&gt; #include &lt;chrono&gt; #include &lt;x86intrin.h&gt; int main(int argc, char* …




30
Quand l'assemblage est-il plus rapide que C?
L'une des raisons invoquées pour connaître l'assembleur est que, à l'occasion, il peut être utilisé pour écrire du code qui sera plus performant que d'écrire ce code dans un langage de niveau supérieur, C en particulier. Cependant, j'ai également entendu dire à plusieurs reprises que bien que ce ne soit …
476 c  performance  assembly 


4
Pourquoi Java active-t-il les entrées contiguës semble-t-il s'exécuter plus rapidement avec des cas supplémentaires?
Je travaille sur du code Java qui doit être hautement optimisé car il fonctionnera dans des fonctions chaudes qui sont invoquées à de nombreux points dans ma logique de programme principale. Une partie de ce code implique la multiplication des doublevariables par des 10valeurs élevées à des valeurs arbitraires non …

10
Utiliser GCC pour produire un assemblage lisible?
Je me demandais comment utiliser GCC sur mon fichier source C pour vider une version mnémonique du code machine afin que je puisse voir dans quoi mon code était compilé. Vous pouvez le faire avec Java mais je n'ai pas réussi à trouver un moyen avec GCC. J'essaie de réécrire …
256 c  gcc  assembly 

3
Qu'est-ce qu'une retpoline et comment ça marche?
Afin d'atténuer la divulgation de mémoire du noyau ou inter-processus (l' attaque Spectre ), le noyau Linux 1 sera compilé avec une nouvelle option , -mindirect-branch=thunk-externintroduite gccpour effectuer des appels indirects via une soi-disant retpoline . Cela semble être un terme nouvellement inventé car une recherche Google ne s'avère que …

10
À quoi ressemble le langage d'assemblage multicœur?
Il était une fois, pour écrire un assembleur x86, par exemple, vous auriez des instructions indiquant "charger le registre EDX avec la valeur 5", "incrémenter le registre EDX", etc. Avec les processeurs modernes qui ont 4 cœurs (ou même plus), au niveau du code machine, semble-t-il simplement qu'il y a …
243 assembly  x86  cpu  multicore  smp 

12
Le «changement» est-il plus rapide que «si»?
Une switchdéclaration est-elle réellement plus rapide qu'une ifdéclaration? J'ai exécuté le code ci-dessous sur le compilateur C ++ x64 de Visual Studio 2010 avec l' /Oxindicateur: #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #define MAX_COUNT (1 &lt;&lt; 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; …



En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.