Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS DELPHI F.A.Q DELPHI TUTORIELS DELPHI LIVRES COMPOSANTS SOURCES DEFI TELECHARGEZ DELPHI TV

Migration de Delphi vers Kylix : CpuSpeed

Date de publication : 25/07/2001

Par Eric SIBERT (Chez Eric Sibert)
 



Bon, je n'ai pas commencé trop fort. J'ai pris une application console élémentaire sous Delphi 5. Cette application appelle l'instruction RDTSC du microprocesseur qui indique le nombre de cycles d'horloge depuis le démarrage de l'ordinateur. On attend ensuite une seconde puis on redemande le nombre de cycles. En faisant la différence, on a la fréquence CPU.

Voici le code source :

program Project1;
{$APPTYPE CONSOLE}
uses
{$IFDEF WIN32}
  windows;
{$ENDIF}
{$IFDEF LINUX}
  libc;
{$ENDIF}
function RDTSC: int64;    // fourni le nombre de cycle depuis le démarrage
register;              // du microprocesseur
asm
  db $0f, $31
end;
const
  Delta = 1000;    // temps d'attente en milliseconde  (soit 1 seconde)
var t, t1 : int64;
begin
  t := rdtsc;
{$IFDEF WIN32}
  sleep(Delta);  // fonction sleep de windows en millisecondes
{$ENDIF}
{$IFDEF LINUX}
  usleep(Delta*1000); // fonction usleep de linux en microsecondes
{$ENDIF}
  t1:=rdtsc-t;
  writeln('This PC is running at about ',t1 div Delta,'kHz');
  readln;
end.
Les "problèmes" rencontrés :

  • dans les uses, exit Windows (il n'y a pas de librairie de remplacement, on le supprime simplement)
  • je n'ai pas retrouvé sleep (on m'a pourtant dit qu'il était dans SysUtils mais je ne l'ai pas vu). J'ai mis à la place usleep qui provient de libc d'où l'ajout de libc dans la clause uses.
  • un petit F9 et là rien ! En mode débug, on voit bien que le code s'exécute mais ne s'arrête sur le readln final. En fait, il faut indiquer d'utiliser une application externe pour lancer notre application :
Paramètre d'exécution
En l'occurence xterm, la version X-Windows d'une console Unix.
Et ça marche.

Les "problèmes" que je N'ai PAS rencontrés :
- le code en assembleur passe tout seul :)))

Et voilà le résultat :

Delphi 5 (Windows) Kylix (Linux)
Aperçu windows Aperçu linux

Code source (677 octets) : Project1.dpr

J'ai essayé d'exécuter cette application sur une station Linux/Debian au boulot et ça marche.



Retour à l'accueil de l'article Migration de Delphi vers Kylix



Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2001 Eric SIBERT. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsables bénévoles de la rubrique Delphi : Bruno Guérangé et Pierre Rodriguez - Contacter par EMail :
Vos questions techniques : forum d'entraide Delphi - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.