Time Stamp Counter <- optimieren, dass es nicht so sehr ruckelt
-
hi,
aus dem forum habe ich den code,
den link weiss ich jetzt nicht mehr,mein problem ist, dass das programm wenn ich es zb verschiebe ruckelt,
bzw langsam arbeitet, veilleicht kann mir jemand helfen....//--------------------------------------------------------------------------- #include <iostream> #include <windows.h> using namespace std; #include "cpu_auslesen.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" int igOldMouseX, igOldMouseY; bool onoff=true; TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void GetMHZ() { unsigned long v1, v2, v3, v4; long double MHz; _asm{ rdtsc mov [v1], eax mov [v2], edx } ::Sleep(500); _asm{ rdtsc mov [v3], eax mov [v4], edx } v1=v3-v1; v2=v4-v2; MHz=(v1+(v2*(2^32)))/1000/500; Form1->Label1->Caption=(int)MHz; } //--------------------------------------------------------------------------- void __fastcall TForm1::bnt_EndeClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { GetMHZ(); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Timer1->Interval = 1; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { int iDeltaX, iDeltaY; if (Shift.Contains(ssLeft)) { iDeltaX = X - igOldMouseX; iDeltaY = Y - igOldMouseY; Top = Top + iDeltaY; Left = Left + iDeltaX; } } //--------------------------------------------------------------------------- void __fastcall TForm1::btn_PauseClick(TObject *Sender) { if(onoff == true) { onoff = false; Timer1->Enabled=false; btn_Pause->Caption="Weiter"; } else { onoff = true; Timer1->Enabled=true; btn_Pause->Caption="Pause"; } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if (Button == mbLeft) { igOldMouseX = X; igOldMouseY = Y; } } //---------------------------------------------------------------------------so, sieht mein form aus !!!
object Form1: TForm1 Left = 330 Top = 119 BorderStyle = bsNone ClientHeight = 76 ClientWidth = 235 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate OnMouseDown = FormMouseDown OnMouseMove = FormMouseMove PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 144 Top = 15 Width = 18 Height = 37 Caption = '0' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clRed Font.Height = -32 Font.Name = 'MS Sans Serif' Font.Style = [] ParentColor = False ParentFont = False end object bnt_Ende: TButton Left = 16 Top = 7 Width = 75 Height = 25 Caption = 'Ende' TabOrder = 0 OnClick = bnt_EndeClick end object btn_Pause: TButton Left = 16 Top = 39 Width = 75 Height = 25 Caption = 'Pause' TabOrder = 1 OnClick = btn_PauseClick end object Timer1: TTimer Interval = 250 OnTimer = Timer1Timer Left = 152 Top = 15 end endich will es so wie das beispiel hier -> http://www.ricosonntag.de/download/examples/CPUSpeed.zip
ohne ruckeln beim verschieben haben...mfg
HubertS
-
Soll ichs dir sagen?
Timer1->Interval = 1;
-
auch wenn ich das weg mache ruckelt es bei mir,
wenn du dir das von rico sonntag angeschaut hast wirst du sehen,
dass es sich sehr flüssig verschieben lässt,mein programm läßt sich zwar verschieben, nur nicht flüssig,
-
wahrscheinlich wird bei dem Programm von Rico Sonntag ein separater Thread zur Ermittlung der CPU-Speed verwendet
mehr zu Threads gibst hier
-
so, es hat einige zeit gedauert,
ca. 5 Tage, bis ich das mit den threads verstanden habe,
wer sich mein fertiges projekt anschauen möchste,
der kann das von meiner neuen seite ziehen -> www.hubert-s.de.vu ...unter download,
die habe ich extra für diesen anlass geproggt,
vielleicht kommt mehr von mir dazu,auf wunsch kann ich mein quellcode, entweder hier im forum oder auf meiner "neuen" seite zur verfügung stellen, entweder oder, oder da oder dort, oder gar nicht, :p