Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
16. Mai 2009
das Problem ist ja, das Windows nicht nur den zu messenden Code ausführt, also zwischendurch auch mal das Programm anhält und schnell mal ein paar andere Programme bearbeitet.
außerdem funkt z.B. die Cache, und andere Hardware dazwischen und bremst etwas.
einzige Lösung:
mehrere Meßdurchgänge und den Durchschnitt berechnen.
PS: hier war's jetzt nicht nötig, daß das Füllen des arrays mit...
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
16. Mai 2009
jupp, und diese machen es genauso, sind also etwa gleich schnell.
hier gibt es einfach nicht viel zum Optimieren, da die größte Bremse (das Kopieren der Werte, in die CPU) immer erhalten bleibt.
uses Math;
procedure TForm1.Button1Click(Sender: TObject);
const MinInt = Low(Integer);
var a: Array of Integer;
i, min, max: Integer;
p: PInteger;
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
16. Mai 2009
sehr viel wirst'e da wohl nimmer optimieren können.
da es ja unsortiert ist, wirst du wohl oder übel wirklich jeden Wert einzeln mit Min/Max vergleichen müssen.
ok, wenn der Wert kleiner als der kleinse Wert ist, dann kann er nicht mehr größer sein, so daß man dieses dann übergehen könnte ... macht aber auch nocht sooooo viele aus
min := array;
max := array;
for i:= 1 to high(array) do
...