Memorytest

Contenu du snippet

MemoryTest : teste la mémoire vive

Teste las performances en écriture de la mémoire vive pour les types de variables char, short et long. Je fut assez surpris d'avoir des résultats si différants selon le type de variable.
Le test dure généralement moins d'une minute, il semble y avoir une marge d'erreur de 5% environ.
Ce programme a été programmé avec Dev-c++ pour Windows mais je pense qu'il est facile a porter vers d'autres compilateurs/systèmes d'exploitation.

Source / Exemple :


/*********************************************************
 Nom : MemoryTest
 Description : Teste la mémoire vive RAM
 Licence : GPL
 Auteur : Raphaël MELIOR (RaphAstronome)
 Date : 12 oct. 2004

                                                                                                                  • /
#include <iostream> #include <stdlib.h> #define DWORD unsigned long #include <Windows.h> using namespace std; int main(int argc, char *argv[]) { // Variables de fonctionnement int ready=0, centmega=100*1024*1024; DWORD temps_debut, temps_execution; // Variables d'essais long* variabletestlong; short* variabletestshort; char* variabletestchar; // Un petit message cout << "Test de la vitesse de la memoire ram (100 Mo)." << endl; cout << "Vous DEVEZ avoir au minimum 256 Mo pour executer ce test sinon ca swapera." << endl; cout << "Code sous licence GNU."; cout << endl; cout << "Lancer le test ? 1:oui 2:non" << endl; cin >> ready; if (ready == 1) { // Test de variable de type long variabletestlong = new long[centmega/4]; // Initialise le tableau temps_debut = GetTickCount(); // Note le moment du départ cout << "Test long "; for (int i=1; i<=15; i++) { // On fait 15 passes cout << "."; for (int j=0; j<centmega/4; j++) variabletestlong[j] = j; // On met des tas de trucs en mémoire } temps_execution = GetTickCount() - temps_debut; // On calcule de temps passé cout << " " << (temps_execution/1000.0f) << "s, "; // On l'affiche cout << (15.0f/(temps_execution/100000.0f)) << "Mo/s" << endl;// On calcule la vitesse delete variabletestlong; // On n'oublie pas de supprimer la var ;D // Test de variable de type short variabletestshort = new short[centmega/2]; // Initialise le tableau temps_debut = GetTickCount(); // Note le moment du départ cout << "Test short "; for (int i=1; i<=15; i++) { // On fait 15 passes cout << "."; for (int j=0; j<centmega/2; j++) variabletestshort[j] = j; // On met des tas de trucs en mémoire } temps_execution = GetTickCount() - temps_debut; // On calcule de temps passé cout << " " << (temps_execution/1000.0f) << "s, "; // On l'affiche cout << (15.0f/(temps_execution/100000.0f)) << "Mo/s" << endl;// On calcule la vitesse delete variabletestshort; // On n'oublie pas de supprimer la var ;D // Test de variable de type char variabletestchar = new char[centmega]; // Initialise le tableau temps_debut = GetTickCount(); // Note le moment du départ cout << "Test char "; for (int i=1; i<=15; i++) { // On fait 15 passes cout << "."; for (int j=0; j<centmega; j++) variabletestchar[j] = j; // On met des tas de trucs en mémoire } temps_execution = GetTickCount() - temps_debut; // On calcule de temps passé cout << " " << (temps_execution/1000.0f) << "s, "; // On l'affiche cout << (15.0f/(temps_execution/100000.0f)) << "Mo/s" << endl;// On calcule la vitesse delete variabletestchar; // On n'oublie pas de supprimer la var ;D system("PAUSE"); } return 0; }

Conclusion :


Veuillez donner les résultats de vos tests, pour moi :
Long : 149.775Mo/s
Short : 98.4123Mo/s
Char : 63.4679Mo/s
Sur un Athlon 1GHz, 256 Mo de RAM @ 133 MHz sur carte-mere ASUS A7V-133

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.