blob: 50bc012dea3648361336fac544bfe30824e6a0ba [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001FUNKTION:
2 int get_eval_cost(void)
3
4BESCHREIBUNG:
5 Liefert die noch verbleibenden Eval Kosten, die das momentane
6 Kommando noch verbrauchen darf.
7 Der Maximalwert betraegt zur Zeit 1.500.000 Ticks (Stand: 2007).
8
9 Sollten die Kosten bei der Ausfuehrung irgendwo groesser werden,
10 wird ein Fehler der Art "too long eval" erzeugt. Diese Funktion
11 dient dazu, solche Fehler genau zu lokalisieren bzw.
12 herauszufinden, an welchen Stellen im Code wieviel Rechenzeit
13 verbraucht wird.
14
15BEISPIELE
16 void foo()
17 {
18 int prev, used, i;
19
20 prev=get_eval_cost(); // Merken, was bis hierhin verbraucht wurde
21 for (i=0;i<=1000;i++) // Dann kommt der zu testende Code, zB eine
22 { // Schleife
23 ...
24 }
25 used=prev-get_eval_cost(); // Berechnung der Differenz
26 printf("Die Schleife verbrauchte %d Ticks.\n", used);
27 }
28
29SIEHE AUCH:
30 caller_stack_depth(E), rusage(E), command(E), query_limits(E)
31 Konstante: __MAX_EVAL_COST__
32
334.Aug 2007 Gloinson