AGB  ·  Datenschutz  ·  Impressum  







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

JclSysInfo defekt !!!

Ein Thema von HomerGER · begonnen am 26. Mär 2004 · letzter Beitrag vom 28. Mär 2004
Antwort Antwort
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#1

JclSysInfo defekt !!!

  Alt 26. Mär 2004, 01:10
Hallo liebe Lieben
Einigen function in der JclSysInfo scheinen nicht mit den neuen Intel Prozessoren UND WIN XP zurecht zukommen
speziell die Functionen GetCPUSpeed usw
sollte man diese Functionen benutzen kommt es zu den fehler "Gleitkommadivision durch Null"
und das einigene programm will ein fehlerbericht nach MS senden
oder es startet es garnicht und will gleich senden - böse böse
abhilfe - JCL KOMPLETT zu löschen - es nützt nix es nur aus der uses raus zu nehmen
der fehler wurde in den newsgroups schon gepostet - leider antworten die jungs nicht und patchen die ganze unit
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#2

Re: JclSysInfo defekt !!!

  Alt 26. Mär 2004, 05:51
Zitat von HomerGER:
abhilfe - JCL KOMPLETT zu löschen - es nützt nix es nur aus der uses raus zu nehmen der fehler wurde in den newsgroups schon gepostet - leider antworten die jungs nicht und patchen die ganze unit
Bescheidene Frage, was hindert jemanden daran es selbst zu beheben?
(schliesslich ist der Quelltext vorhanden...)
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: JclSysInfo defekt !!!

  Alt 26. Mär 2004, 06:29
Wir haben einfach nicht die Manpower die JVCL 2.1 weiterzupflegen.
Wie NicoDE sagt bereitet es kein Problem die Implementation aus der JVCL 3 in die JVCL 2.1 zu uebertragen.

Das hier ist Open Source kein kommerzielles Produkt wo wir jedem in den Arsch kriechen muessen.
Ein bischen Eigeninitiative ist gefragt.

Ich entschuldige mich fuer die obigen unflaetigen Worte, aber die Frage kommt schon ziemlich impertinent rueber.
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#4

Re: JclSysInfo defekt !!!

  Alt 26. Mär 2004, 09:32
ja ok - womöglich hab ich es falsch gesagt - ich habe leider auch nicht die manpower es zu beheben
nur wie ich es gesehen habe ist das problem schon sehr lange bekannt, also es gibt schon deswegen anfragen in der newsgroup vom letzten jahr, und auch da wurde nicht geantwortet.
es geht auch nicht um das machen , sondern um das sagen das es so ein bug gibt. denn ich bin damit voll gegen die wand gelaufen.
was nützen mir denn solche functionen, wenn sie fehlerhaft sind , es bekannt ist und man noch nichtmal informiert wird ???? - Bin ich hier bei MS?
Und das mit den KOMPLETT LÖSCHEN - leider ging nur so der fehler weg

ps in den arsch kriechen tut auch sehr weh - aber womöglich ein info in der newsgroup oder auf der hp, das ist nicht so schmerzhaft
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: JclSysInfo defekt !!!

  Alt 26. Mär 2004, 11:35
Hier Die Funktion GetCPUSpeed aus der JCL 1.90B2;
da wurde der Bug gefixed.
Einfach per copy&Paste in die JclSysInfo der Version 1.22 einpflanzen.
Der Bugfix wurde übrigens in der Newsgroup Jedi.jcl (server forums.talkto.net)
schon vor längerer Zeit diskutiert.
Die JCL steht qualitativ auf einem sehr hohem Level; falls doch mal
ein Bug auftritt ist das kein Grund gleich die Flinte ins Korn zu werfen !

Delphi-Quellcode:
function GetCPUSpeed(var CpuSpeed: TFreqInfo): Boolean;
{$IFDEF LINUX}
begin
  Result := False;
end;
{$ENDIF LINUX}
{$IFDEF MSWINDOWS}
var
  T0, T1: Int64;
  CountFreq: Int64;
  Freq, Freq2, Freq3, Total: Int64;
  TotalCycles, Cycles: Int64;
  Stamp0, Stamp1: Int64;
  TotalTicks, Ticks: Double;
  Tries, Priority: Integer;
  Thread: THandle;
begin
  Stamp0 := 0;
  Stamp1 := 0;
  Freq := 0;
  Freq2 := 0;
  Freq3 := 0;
  Tries := 0;
  TotalCycles := 0;
  TotalTicks := 0;
  Total := 0;

  Thread := GetCurrentThread();
  Result := QueryPerformanceFrequency(CountFreq);
  if Result then
  begin
    while ((Tries < 3 ) or ((Tries < 20) and ((Abs(3 * Freq - Total) > 3) or
      (Abs(3 * Freq2 - Total) > 3) or (Abs(3 * Freq3 - Total) > 3)))) do
    begin
      Inc(Tries);
      Freq3 := Freq2;
      Freq2 := Freq;
      QueryPerformanceCounter(T0);
      T1 := T0;

      Priority := GetThreadPriority(Thread);
      if Priority <> THREAD_PRIORITY_ERROR_RETURN then
        SetThreadPriority(Thread, THREAD_PRIORITY_TIME_CRITICAL);
      try
        while T1 - T0 < 50 do
        begin
          QueryPerformanceCounter(T1);
          Stamp0 := ReadTimeStampCounter;
        end;
        T0 := T1;

        while T1 - T0 < 1000 do
        begin
          QueryPerformanceCounter(T1);
          Stamp1 := ReadTimeStampCounter;
        end;
      finally
        if Priority <> THREAD_PRIORITY_ERROR_RETURN then
          SetThreadPriority(Thread, Priority);
      end;

      Cycles := Stamp1 - Stamp0;
      Ticks := T1 - T0;
      Ticks := Ticks * 100000;

      // avoid division by zero
      if CountFreq = 0 then
        Ticks := High(Int64)
      else
        Ticks := Ticks / (CountFreq / 10);

      TotalTicks := TotalTicks + Ticks;
      TotalCycles := TotalCycles + Cycles;

      // avoid division by zero
      if Ticks = 0 then
        Freq := High(Freq)
      else
        Freq := Round(Cycles / Ticks);

      Total := Freq + Freq2 + Freq3;
    end;

    // avoid division by zero
    if TotalTicks = 0 then
    begin
      Freq3 := High(Freq3);
      Freq2 := High(Freq2);
      CpuSpeed.RawFreq := High(CpuSpeed.RawFreq);
    end
    else
    begin
      Freq3 := Round((TotalCycles * 10) / TotalTicks); // freq. in multiples of 10^5 Hz
      Freq2 := Round((TotalCycles * 100) / TotalTicks); // freq. in multiples of 10^4 Hz
      CpuSpeed.RawFreq := Round(TotalCycles / TotalTicks);
    end;

    CpuSpeed.NormFreq := CpuSpeed.RawFreq;

    if Freq2 - (Freq3 * 10) >= 6 then
      Inc(Freq3);


    Freq := CpuSpeed.RawFreq * 10;
    if (Freq3 - Freq) >= 6 then
      Inc(CpuSpeed.NormFreq);

    CpuSpeed.ExTicks := Round(TotalTicks);
    CpuSpeed.InCycles := TotalCycles;

    CpuSpeed.NormFreq := RoundFrequency(CpuSpeed.NormFreq);
    Result := True;
  end;
end;
{$ENDIF MSWINDOWS}
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#6

Re: JclSysInfo defekt !!!

  Alt 26. Mär 2004, 23:01
leider hab ich in der newsgroup nix gefunden und auf meine post in der newsgroup haben mich 2 user angemail, sie hätten das gleiche problem und auch keine lösung
hatte mir erst vor kurzen die jcl+jvcl210 fullinstall runtergeladen - und da ist der bug noch drin

ps aber thx für den fix
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: JclSysInfo defekt !!!

  Alt 26. Mär 2004, 23:10
jcl+jvcl210 ist auch schon recht alt. Und die JVCL 3 steht kurz vor einem Release und benötigt (mindestens) die JCL 1.9.

Zitat:
mit den neuen Intel Prozessoren UND WIN XP
Mit XP hat das nichts zu tun. Mit den Prozessoren über 1.5 GHz aber um so mehr.
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#8

Re: JclSysInfo defekt !!!

  Alt 27. Mär 2004, 19:47
Zitat von jbg:
Mit XP hat das nichts zu tun. Mit den Prozessoren über 1.5 GHz aber um so mehr.
hmm
hier ne mail die einer geschickt hat
Zitat:
I meet the same problem with P4 2.8 Ghz under Windows XP
Call to QueryPerformanceFrequency returns 0 causing "divide by zero"
trap. The same application using JCL with processor P4 2.8 Ghz under
Windows 2000 works fine.
ich hatte das z.b nur mit den neuen Intel HT, und wie gesagt nur auf xp getestet

ich hab das aber (glaube ich ) alles in der newsgroup gepostet
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: JclSysInfo defekt !!!

  Alt 28. Mär 2004, 00:19
Zitat von HomerGER:
T
Zitat:
he same application using JCL with processor P4 2.8 Ghz under
Windows 2000 works fine.
Dann war wohl unter Win2k mehr am Laufen, das die Rechenleistung heruntergeschraubt hat, denn auf meinen 3 GHz HT krachte die alte JclSysInfo Unit auch unter Win2k.
  Mit Zitat antworten Zitat
Benutzerbild von HomerGER
HomerGER

Registriert seit: 9. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#10

Re: JclSysInfo defekt !!!

  Alt 28. Mär 2004, 00:22
thx für die info
fühle mich jetzt nicht mehr so alleingelassen
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:38 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