Posts tagged buffer

Cpu buffer vs cache

Bonjour,

Sur une section de code sensible je me suis demander, ce qui est mieux (teste fait en C++):

int a;
while(10000000x)
a=10;

Ou:

int a;
while(10000000x)
if(a!=10)
a=10;

Avec la 1ère partie, une vague d’information qui viens du coeur du cpu viens remplir les différents buffer (L1, L2, L3) jusqu’as la mémoire centrale de manière non bloquante. Ce qui provoque une grosse consommation sur tout le chemin de l’information. Cela est plus performant sur ARMv6 in-order surchargé car cela est non bloquant (2x), mais plus lent de 30% sur un x86 vide.

La 2ème partie est plus lente sur un système surchargé car le CPU passe sont temps a remettre en cache l’information à cause des changements de contexte qui purge les différents cache. Bien sur cette solution est préférable si cela permet d’évité un traitement lourd, mais la première solution est mieux pour la gestion simple de flags.

Bye,

Checksum et buffer sous Ultracopier 0.3

Bonjour, j’ai commencé rapidement à mettre en place le buffer et le checksum sous Ultracopier 0.3. Le checksum vas me demander plus de travail, car j’ai fait toutes les variantes.

J’ai aussi commencer à implémenter les filtres. Ma vie professionnel me prends beaucoup de mon temps libre, donc j’ai hélas pas beaucoup de temps pour faire avancer ultracopier.

Grace au projet pokecraft, je commence à maîtriser les listes indexés (type QHash, QSet, …), ce qui me permet de faire plus d’optimisation qu’avant (+500% sur le moteurs d’options je pense). Grace à Qt5 les signaux/slots seront + rapide, ce qui permettra d’avoir plus de performance sur les petits fichiers, et la préallocation d’un buffer char* permettra d’avoir plus de performance sur les gros fichiers.

Probléme sous linux

J’ai noter 2 comportement anormal sous linux:

  • Si ont as asser de ram le cache/buffer ne marche pas, la preuve ont vas beaucoup plus vite avec un ram disk qu’avec un dossier temporaire en ext4 alors que tyout devrai tourner en ram car le fichier est créer, puis lu/écrit et enfin détruit
  • Sous kde quand on lance 70 application en parallèle (erreur de ma part), linux plante, hors avec windows j’ai pas de problème.
  • Sous kde les menu issu d’un clique droit, qu’il soit des menus dynamique ou statique sont long à s’afficher si il y as une charge disque dur, et instantanné sous windows.

Voila mon retour du jour. Malgré ces inconvénients, linux + kde reste le meilleur Os pour mon utilisation.

Go to Top