AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

JCLCounter - High Performance Counter

Ein Thema von creality · begonnen am 14. Jun 2007 · letzter Beitrag vom 13. Jul 2007
Antwort Antwort
Seite 2 von 3     12 3      
Robert Marquardt
(Gast)

n/a Beiträge
 
#11

Re: JCLCounter - High Performance Counter

  Alt 14. Jun 2007, 14:15
Das heisst mein Testprogramm gibt nichts aus.
Ruf doch mal den Installer der JCL auf und installiere einfach erneut. Vielleicht hilft das ja.
Der Installer hat auf jeden Fall kein Problem damit immer wieder aufgerufen zu werden.
  Mit Zitat antworten Zitat
Benutzerbild von creality
creality

Registriert seit: 14. Mai 2007
Ort: Double D Town
39 Beiträge
 
Delphi 2007 Professional
 
#12

Re: JCLCounter - High Performance Counter

  Alt 14. Jun 2007, 14:18
@ Robert:

Jo dein Programm gibt nix aus. Die QueryPerformanceFrequency(Freq) ist nicht NULL und auch QueryPerformanceCounter(time) gibt ein INT64 zurück.

JCL hab ich bereits mehrfach installiert, deinstalliert und manuell installiert. immer das gleiche. furchtbar
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: JCLCounter - High Performance Counter

  Alt 14. Jun 2007, 14:27
Neueste Version? Evtl. haben ja ältere JCL-Versionen hier eine Wanze eingebaut?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#14

Re: JCLCounter - High Performance Counter

  Alt 14. Jun 2007, 14:33
Kopier doch mal JclCounter.pas, fuege es in dein Projekt ein, builde dein Programm und geh mit dem Debugger in den Konstruktor und schaue nach was dort passiert.
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: JCLCounter - High Performance Counter

  Alt 14. Jun 2007, 16:00
An dem Update für Windows liegt es nicht, bei mir geht alles. Mach dein Windows mal platt.
André
"A programmer is just a tool which converts caffeine into code", daran wirds wohl liegen, dass ich Abends nie pennen kann

Zitat von Luckie:
Nicht nur dass ihr offtopic geworden seid, jetzt werdet ihr selber im Offtopic noch offtopic
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: JCLCounter - High Performance Counter

  Alt 14. Jun 2007, 16:26
Zitat von MagicAndre1981:
An dem Update für Windows liegt es nicht, bei mir geht alles. Mach dein Windows mal platt.
Und was sagst du dem Kunden wenn sowas dort auftritt? Das gleiche?
Wir sollten die Ursache schon finden. Windows-Update ändern teilweise Systemeinstellung (wurde bei mir für die Internetzone "Trusted Sides" auch wieder gemacht und das auch nicht bei jedem Anwender.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von creality
creality

Registriert seit: 14. Mai 2007
Ort: Double D Town
39 Beiträge
 
Delphi 2007 Professional
 
#17

Re: JCLCounter - High Performance Counter

  Alt 15. Jun 2007, 06:58
Zusammenfassung bisheriger Ergebnisse

Funktioniert. Zeit kann gemessen werden ohne Probleme.

Delphi-Quellcode:
// Start
procedure HiPerfCounter.Start;
begin
     try
     QueryPerformanceFrequency(freq);
     QueryPerformanceCounter(time1);

     except
          on E:Exception do begin
             ShowMessage('HiPerfCounter reported an Error. QueryPerformanceCounter is not supported.');
          end;
     end;
end;
Auszug aus dem JCL Counter:

Funktioniert nicht, obwohl hier genau das gleiche passiert: QueryPerformanceFrequency(FFrequency) liefert NULL zurück. WIESO?

Delphi-Quellcode:

constructor TJclCounter.Create(const Compensate: Boolean);
const
  Iterations: Integer = 10000;
var
  Count: Integer;
  TmpOverhead: Int64;
begin
  inherited Create;

  {$IFDEF MSWINDOWS}
  if not QueryPerformanceFrequency(FFrequency) then
    raise EJclCounterError.CreateRes(@RsNoCounter);
  {$ENDIF MSWINDOWS}
  {$IFDEF LINUX}
  FFrequency := 100000; // 1 sec = 10E6 microseconds, therefore we have to divide by 10E5
  {$ENDIF LINUX}

  FCounting := False;
  FOverhead := 0;
......................
..........
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#18

Re: JCLCounter - High Performance Counter

  Alt 15. Jun 2007, 07:21
Mal den PEViewer der JCL uebersetzen und auf die EXEs ansetzen, aber eigentlich sollten genau die gleichen Funktionen eingelinkt werden.
Alternativ die JVCL und JCL deinstallieren und loeschen und dann wirkich alle Files aus dem Delphi-Verzeichnisbaum loeschen die mit Jcl oder Jv beginnen.
Danach die Festplatte absuchen ob nicht noch andere Files mit diesen Prefixen rumliegen. Moeglichst auch loeschen.
Nun JVL und JVCL von http://jvcl.sf.net/daily bzw. http://jcl.sf.net/daily besorgen und installieren.
  Mit Zitat antworten Zitat
Benutzerbild von creality
creality

Registriert seit: 14. Mai 2007
Ort: Double D Town
39 Beiträge
 
Delphi 2007 Professional
 
#19

Re: JCLCounter - High Performance Counter

  Alt 15. Jun 2007, 07:41
@ Robert:

Ich habe soeben die JCLCounter.pas n bisschen editiert. Vor dem call: if not QueryPerformanceCounter(FStart) then
habe ich ne Testvariable eingefügt: Test : bool.

Und jetzt kommts: test := QueryPerformanceCounter(FStart); gibt NICHT null zurück und siehe da...der Counter geht wieder. Ich verstehs aber nicht. Nach dem entfernen der Var geths trotzdem. Ich vermute aber...das es nicht daran lag sondern an irgendwas anderem.

So kanns nicht weitergehen...ich werde mal deine Schrittliste abarbeiten und den ganzen Kram entfernen.


Delphi-Quellcode:
procedure TJclCounter.Start;
var
test : Boolean;
begin
  test := QueryPerformanceCounter(FStart);
  FCounting := True;
  FElapsedTime := 0;
  FOverallElapsedTime := 0;
  {$IFDEF MSWINDOWS}
  if not QueryPerformanceCounter(FStart) then
    raise EJclCounterError.CreateRes(@RsNoCounter);
  {$ENDIF MSWINDOWS}
  {$IFDEF LINUX}
  GetTimeOfDay(FTimeval, nil);
  FStart := FTimeval.tv_sec * 100000 + (FTimeval.tv_usec);
  {$ENDIF LINUX}
end;
  Mit Zitat antworten Zitat
cryo123

Registriert seit: 26. Jun 2007
1 Beiträge
 
#20

Re: JCLCounter - High Performance Counter

  Alt 26. Jun 2007, 09:12
I think we've met the same problem some days ago with delphi 2006 and JCL and we just found a simple way to solve it : you have to change your compiler settings to align record data on 4 bytes.

For Delphi 2006, Go to Project => Options => Compiler => Code generation and look for the "Field Record Alignment" with a combobox with possible values : "0,1,2,4,8". You have to choose 4 (8 also seems to work) and recompile all your project
I do not know for other Delphi versions but it should be quite similar IMHO

PS : Sorry for writing in english on a german forum :(. I hope someone could translate it to others people here
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz