Articles of performance

Quelle est la cause, Swift est censé être beaucoup plus rapide que Objective-C?

Comme Craig l’a révélé dans l’annonce de Swift, celui-ci serait de loin plus rapide que Objective-C. Mais je ne suis pas convaincu par cette comparaison, car un algorithme correctement implémenté devrait être le plus rapide en C, car il peut être hautement optimisé par le compilateur et est par nature convivial pour le matériel. Donc, […]

Heap vs Stack en ce qui concerne la vitesse de lecture / écriture

Je viens de passer en revue un tas de threads stack / tas ici sur Stack Overflow (et d’autres sites aléatoires trouvés via Google), et pourtant je ne trouve pas de réponse qui apporte beaucoup (le cas échéant) de profondeur au problème de la vitesse de lecture / écriture. (la plupart des réponses et des […]

Quelle structure de données pour l’insertion / suppression aléatoire O (1) et l’access aléatoire O (1)?

Je ne sais pas quelle structure de données utiliser pour résoudre ce problème. Je veux que la structure ait: Insertion ou suppression en temps constant. Récupération de temps constant par id. Le système actuel est: J’ai un tas d’objects chacun avec un identifiant unique. Mon programme devra recevoir des demandes d’identifiant et renvoyer l’object correspondant. […]

Table de consultation vs commutateur dans le logiciel intégré C

Dans un autre sujet, on m’a dit qu’un switch peut être meilleur qu’une table de consultation en termes de rapidité et de compacité. Je voudrais donc comprendre les différences entre ceci: Table de correspondance static void func1(){} static void func2(){} typedef enum { FUNC1, FUNC2, FUNC_COUNT } state_e; typedef void (*func_t)(void); const func_t lookUpTable[FUNC_COUNT] = […]

Pourquoi des chaînes à zéro terminal? Ou: stockage terminé par des caractères nuls vs. caractères + longueur

J’écris un interpréteur de langue en C, et mon type de ssortingng contient un atsortingbut length , comme ceci: struct Ssortingng { char* characters; size_t length; }; Pour cette raison, je dois passer beaucoup de temps sur mon interprète à traiter ce type de chaîne manuellement, car C n’inclut pas la prise en charge intégrée. […]

Pourquoi mon ordinateur ne montre-t-il pas d’accélération lorsque j’utilise du code parallèle?

Je réalise donc que cette question a l’air stupide (et oui, j’utilise un dual core), mais j’ai essayé deux bibliothèques différentes (Grand Central Dispatch et OpenMP), et en utilisant clock () pour chronométrer le code avec et sans les lignes qui font parallèle, la vitesse est la même. (pour le compte rendu, ils utilisaient tous […]

Quoi de mieux à utiliser, un bloc __try / __ except ou un bloc try / catch?

Je me demande quel est le meilleur moyen d’attraper les exceptions que je lance: est-ce un bloc __try / __except ou un bloc try / catch? J’écris en C ++ et le programme ne sera utilisé que sous Windows, la portabilité n’est donc pas un problème. Merci!

C / C ++: GOTO est-il plus rapide que WHILE et FOR?

Je sais que tout le monde déteste GOTO et personne ne le recommande. Mais ce n’est pas la question. Je veux juste savoir quel code est le plus rapide: la boucle goto int i=3; loop: printf(“something”); if(–i) goto loop; la boucle while int i=3; while(i–) { printf(“something”); } la boucle for for(int i=3; i; i–) […]

pourquoi GCC __builtin_prefetch n’améliore pas les performances?

J’écris un programme pour parsingr un graphique de réseau social. Cela signifie que le programme nécessite de nombreux access en mémoire aléatoire. Il me semble que prefetch devrait aider. Voici un petit extrait du code de lecture des valeurs des voisins d’un sumt. for (size_t i = 0; i < v.get_num_edges(); i++) { unsigned int […]

Points de planification des tâches OpenMP

J’ai le code suivant: #pragma omp parallel { #pragma omp single { for(node* p = head; p; p = p->next) { preprocess(p); #pragma omp task process(p); } } } Je voudrais savoir quand les threads commencent à calculer les tâches. Dès que la tâche est créée avec #pragma omp task ou seulement après que toutes […]