un bench curieux sur la copie de blocs mémoire
Dans cet article, l'auteur a eu la curieuse idée de comparer la vitesse d'exécution d'un petit programme de copie de blocs mémoire de 16Mo sous linux et sous windows 2000. Et les résultats sont a priori surprenants: la copie de mémoire est plus rapide (~170Mo/s) sous linux que sous win2k (entre 93 et 132Mo/s selon la méthode de copie). Alors que le code généré par les compilateurs est le même sous linux et sous windows. Sa conclusion est qu'il ne sait pas comment expliquer cette différence. Ma conclusion à moi, c'est que [dans cette configuration] linux gère mieux les pages mémoire que win...
# debat ou troll
Posté par Anonyme . Évalué à 0.
Linux (avec ou sans X+interface...)
Windows (avec ou sans programme deja lancé... juste apres un reboot...)
OK g lu rapidement... mais qd meme
# au sujet de la gestion de la memoire
Posté par »-(¯`v´¯)-» . Évalué à 0.
kernel 2.4.5-ac17 (ac9 aussi )
vous trouvez ca normal ?
[^] # Re: au sujet de la gestion de la memoire
Posté par Sebastien . Évalué à 0.
Ceci pour les tout les kernel 2.0.x et 2.2.x
[^] # Re: au sujet de la gestion de la memoire
Posté par Ramón Perez (site web personnel) . Évalué à -1.
Efface.
[^] # Re: au sujet de la gestion de la memoire
Posté par Sebastien . Évalué à 0.
[^] # Re: au sujet de la gestion de la memoire
Posté par Annah C. Hue (site web personnel) . Évalué à 0.
[^] # ah non, pas du tout. efface.
Posté par Gaël . Évalué à -1.
Donc, pendant plusieur mois, on a eu droit à un extrait de tchatche (je n'arrive pas à écrire un "extrait de chat" sans penser à des misères faites à de sympathiques bestioles miaulantes) qui était, de mémoire:
folop> y'a un fichier de 61 mo dans /proc, c'est normal ?
mooby> ah non, pas du tout
mooby> efface
Voila, voila. Ensuite, on a eu droit après de très insistantes demandes à un texte ou Bartman expliquait qu'il faisait de l'IRC avec un client en Perl, que ça marchait bien :-), et immédiatement après après on voyait
--|-- Signoff Bartman (dead socket).
Enfin, il y eu une obscure histoire de carte vidéo branchée sur le port série, et peut-être une autre, puis les fortunes sont devenues dynamiques.
Mais les vieux de la vielles se souviennent avec émotion des jours où Folop, Bartman et les autres héros qui ont bercé notre enfance illuminaient les jours de ce site.
Bon, on les voit encore de temps en temps, mais ils sont noyés dans la masse.
En tout cas, tu as ta réponse à cette angoissante question, pourquoi demande t'on d'effacer quand quelqu'un dit "ah non, pas du tout".
L'humour nerd est une chose fascinante...
(Hop, en -1 car c'est très hors-sujet.)
[^] # Souvenir ...
Posté par kadreg . Évalué à 1.
[^] # Re: ah non, pas du tout. efface.
Posté par Troy McClure (site web personnel) . Évalué à -1.
je crois que tu l'as reproduite à la virgule près :)
en fait c'est bien les fortunes pas dynamiques, ça permet d'infinies variations, ça occupe la tribune... rahlala le bon vieux temps (cad il y a...9 mois ?)
[^] # Re: ah non, pas du tout. efface.
Posté par Anonyme . Évalué à -1.
http://neuneu.mine.nu/(...)
---
Oui aux scores en dessous de -1!
[^] # Oui...
Posté par Ano . Évalué à 1.
Et franchement, y'a toujours un petit paquet de démons qui servent tous les 36 du mois qui sont mieux en swap... Peut être as-tu un bon paquet de ces petits démons. Quand on boote une distro toute fraiche, on a même un pandemonium...
[^] # Re: au sujet de la gestion de la memoire
Posté par Lilian . Évalué à 0.
[^] # Re: au sujet de la gestion de la memoire
Posté par Anonyme . Évalué à 0.
plus de problème !
[^] # Re: au sujet de la gestion de la memoire
Posté par Anonyme . Évalué à 0.
Tu en doutes ? Et bien sache qu'on m'a déjà fait cette suggestion. Si, si.
Xavier
[^] # Re: au sujet de la gestion de la memoire
Posté par Alex . Évalué à 0.
Mais je ne men plein pas car jai tres tres rarement des acces swap
en effet linux met swap ce que tu n'utilises pas (notament ceratins serv/daemons) ce qui est plutot bien
[^] # Re: au sujet de la gestion de la memoire
Posté par - - . Évalué à 1.
je suis encore au 2.4.3 et je n ai pas rencontré de telles occupation de swap
un ami avec le 2.4.5 se plaint de swap massif, voir de trash swap alors qu il a 512mo
c un probleme pris au serieux par les developpeurs linux
le 2.4 ne brille pas par ses performances pour nettoyer le swap. le 2.4.6 est censé améliorer ca , (enfin disons que c une premiere amélioration prévue a ce que j'ai lu)
# Oui, c'est un bench à la con
Posté par Anonyme . Évalué à 0.
Passk'avec la MMU, les caches CPU, le resource-tracking, le multi-tâches, tester ce qui se passe vraiment est illusoire. En effet, les context-switches et le quantum ont sûrement une importance dans la vitesse des benchs ...
Il prétend que le code pondu est identique, mais pourquoi a t'il utilisé c++ ? L'assembleur me semblait plus judicieux, il aurait eu un code complètement identique (sauf le seg-loader).
Bref, c'est toujours la même chose : Tous les benchs pour les systèmes à mémoire protégée sont faux, qu'on se le dise.
[^] # Re: Non, c'est juste un bench
Posté par Anonyme . Évalué à 0.
Par contre, pour mesurer reellement les temps, il devrait utiliser RDTSC, cela prendra en compte tout les temps.
La ou son truc n'a pas beaucoup de valeur, c'est concernant les debits retournes. Avec un codage different, il peut avoir des valeurs tout autre (utilisation de QMOV et de prefetch).
nicO
# Et le context switching ??
Posté par Anonyme . Évalué à 0.
Mon context : EJB / Java. Bref, du très haut niveau, loin de l'OS. Peut-on mettre la JVM en cause. J'en doute. Mon problème vient d'échange de messages sur socket (loopback en ce qui concerne mon test)... WinNT perd visible son temps dans le context switching.
Le principe : envoie d'un message, et réception d'un ACK en retour (niveau Java). Si on enlève l'envoi du ACK au protocole, on voit très très peu de différence sous Linux mais NT semble avoir des ailes qui lui poussent comparé à la version avec ACK.
Etrange n'est-ce pas...
Existent-ils donc des VRAIS benchmarks ?
Sur l'utilisation de la mémoire, des sockets, ou ce genre de choses ?
[^] # Re: Et le context switching ??
Posté par Anonyme . Évalué à 0.
Dans la mesure où on ne peut pas gérer le time-slice (quantum) il se peut que Linux soit paramétré pour un quantum de 100ms, et NT pour une autre valeur. Mon Amiga a un quantum de 3ms. Il est donc prévu pour faire du context-switch intensif, mais ce n'est peut-être pas le cas de Linux ni de NT. De plus j'ai, par exemple, un algo de scheduling qui est dynamique, alors pour ce qui est de mesurer le temps ...
Sans compter la ligne de pseudo-code ci-dessous :
(admettons un CPU avec un CACHE)
>charge ma_valeur dans mon_adr
>charge ma_valeur dans mon_adr2
>teste le dernier bit de la valeur dans mon_adr
>teste le dernier bit de la valeur dans mon_adr2
est plus rapide que :
>charge ma_valeur dans mon_adr
>teste le dernier bit de la valeur dans mon_adr
>charge ma_valeur dans mon_adr2
>teste le dernier bit de la valeur dans mon_adr2
(ben oui !)
Ais-je tord ?
[^] # Re: Et le context switching ??
Posté par Anonyme . Évalué à 0.
nicO
[^] # Re: Et le context switching ??
Posté par Anonyme . Évalué à 0.
Oui, si tu prends le temps de lire l'article, tu verras que l'auteur s'est posé les mêmes questions et qu'il a fait un bench sur du calcul pur, sans transfert de blocs mémoires (calcul fractal).
Résultat:
Linux 2.2.16-22 ..... 4.065
Linux 2.4.4 ......... 4.087
Windows 2000 AS ..... 4.300
La différence n'est plus la même...
Quoiqu'il en soit, pour répondre à la question initiale, l'auteur de l'article n'ayant procédé à aucune optimisation particulière (fonction memcpy() classique) on peut en déduire qu'un programme faisant un usage intensif de transferts de blocs mémoires aura intérêt à tourner sur Linux x86 s'il n'a pas été optimisé pour une plateforme particulière.
Xavier
# bravo l'auteur
Posté par Jylam / jylam.lnxsce (site web personnel) . Évalué à 1.
Genre la, ce qui m'amuse, c'est le "Ma conclusion à moi, c'est que [dans cette configuration] linux gère mieux les pages mémoire que win... ".
Tu l'as trouvé tout seul ou qqun t'as expliqué ?
moi perso ma conclusion c'est que le bench est favorable a linux. t'as vu, moi aussi je fait des conclusions interessantes.
[^] # Re: bravo l'auteur
Posté par Anonyme . Évalué à 0.
Linux x86 a une version optimisée de la copie mémoire par memcpy (copie avec des instructions MMX ou 3Dnow ou ? je ne sais plus) alors que l'auteur de l'article constate clairement que les copies sous Win2k se font élément par élément (char par char, short par short, etc.).
Pour moi, ce bench vaut ce qu'il vaut mais il est probant, l'auteur ayant vérifié que des paramètres comme la charge cpu (ou le time-slice ou quoi que ce soit) n'avaient pas d'influence significative sur le résultat.
Xavier
[^] # Re: bravo l'auteur
Posté par Anonyme . Évalué à 0.
Sur Wnt la taille de page est 4Ko, sur Linux aussi.
Ah Ah.
C'est dans le CPU ça, pas dans l'OS.
Oublions ce post, ce bench, consacrons nous à autre chose.
[^] # Re: bravo l'auteur
Posté par Troy McClure (site web personnel) . Évalué à 1.
'tain il m'a vexé :(
# pamela si tu es blonde ...
Posté par Sylvain (site web personnel) . Évalué à -1.
et pas seulement pour tes bench débiles ;o)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.