1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
153 :
154 :
155 :
156 :
157 :
158 :
159 :
160 :
161 :
162 :
163 :
164 :
165 :
166 :
167 :
168 :
169 :
170 :
171 :
172 :
173 :
174 :
175 :
176 :
177 :
178 :
179 :
180 :
181 :
182 :
183 :
184 :
185 :
186 :
187 :
188 :
189 :
190 :
191 :
192 :
193 :
194 :
195 :
196 :
197 :
198 :
199 :
200 :
201 :
202 :
203 :
204 :
205 :
206 :
207 :
208 :
209 :
210 :
211 :
212 :
213 :
214 :
215 :
216 :
217 :
218 :
219 :
220 :
221 :
222 :
223 :
224 :
225 :
226 :
227 :
228 :
229 :
230 :
231 :
232 :
233 :
234 :
235 :
236 :
237 :
238 :
239 :
240 :
241 :
242 :
243 :
244 :
245 :
246 :
247 :
248 :
249 :
250 :
251 :
252 :
253 :
254 :
255 :
256 :
257 :
258 :
259 :
260 :
261 :
262 :
263 :
264 :
265 :
266 :
267 :
268 :
269 :
270 :
271 :
272 :
273 :
274 :
275 :
276 :
277 :
278 :
279 :
280 :
281 :
282 :
283 :
284 :
285 :
286 :
287 :
288 :
289 :
290 :
291 :
292 :
293 :
294 :
295 :
296 :
297 :
298 :
299 :
300 :
301 :
302 :
303 :
304 :
305 :
306 :
307 :
308 :
309 :
310 :
311 :
312 :
313 :
314 :
315 :
316 :
317 :
318 :
319 :
320 :
321 :
322 :
323 :
324 :
325 :
326 :
327 :
328 :
329 :
330 :
331 :
332 :
333 :
334 :
335 :
336 :
337 :
338 :
339 :
340 :
341 :
342 :
343 :
344 :
345 :
346 :
347 :
348 :
349 :
350 :
351 :
352 :
353 :
354 :
355 :
356 :
357 :
358 :
359 :
360 :
361 :
362 :
363 :
364 :
365 :
366 :
367 :
368 :
369 :
370 :
371 :
372 :
373 :
374 :
375 :
376 :
377 :
378 :
379 :
380 :
381 :
382 :
383 :
384 :
385 :
386 :
387 :
388 :
389 :
390 :
391 :
392 :
393 :
394 :
395 :
396 :
397 :
398 :
399 :
400 :
401 :
402 :
403 :
404 :
405 :
406 :
407 :
408 :
409 :
410 :
411 :
412 :
413 :
414 :
415 :
416 :
417 :
418 :
419 :
420 :
421 :
422 :
423 :
424 :
425 :
426 :
427 :
428 :
429 :
430 :
431 :
432 :
433 :
434 :
435 :
436 :
437 :
438 :
439 :
440 :
441 :
442 :
443 :
444 :
445 :
446 :
447 :
448 :
449 :
450 :
451 :
452 :
453 :
454 :
455 :
456 :
457 :
458 :
459 :
460 :
461 :
462 :
463 :
464 :
465 :
466 :
467 :
468 :
469 :
470 :
471 :
472 :
473 :
474 :
475 :
476 :
477 :
478 :
479 :
480 :
481 :
482 :
483 :
484 :
485 :
486 :
487 :
488 :
489 :
490 :
491 :
492 :
493 :
494 :
495 :
496 :
497 :
498 :
499 :
500 :
501 :
502 :
503 :
504 :
505 :
506 :
507 :
508 :
509 :
510 :
511 :
512 :
513 :
514 :
515 :
516 :
517 :
518 :
519 :
520 :
521 :
522 :
523 :
524 :
525 :
526 :
527 :
528 :
529 :
530 :
531 :
532 :
533 :
534 :
535 :
536 :
537 :
538 :
539 :
540 :
541 :
542 :
543 :
544 :
545 :
546 :
547 :
548 :
549 :
550 :
551 :
552 :
553 :
554 :
555 :
556 :
557 :
558 :
559 :
560 :
561 :
562 :
563 :
564 :
565 :
566 :
567 :
568 :
569 :
570 :
571 :
572 :
573 :
574 :
575 :
576 :
577 :
578 :
579 :
580 :
581 :
582 :
583 :
584 :
585 :
586 :
587 :
588 :
589 :
590 :
591 :
592 :
593 :
594 :
595 :
596 :
597 :
598 :
599 :
600 :
601 :
602 :
603 :
604 :
605 :
606 :
607 :
608 :
609 :
610 :
611 :
612 :
613 :
614 :
615 :
616 :
617 :
618 :
619 :
620 :
621 :
622 :
623 :
624 :
625 :
626 :
627 :
628 :
629 :
630 :
631 :
632 :
633 :
634 :
635 :
636 :
637 :
638 :
639 :
640 :
641 :
642 :
643 :
644 :
645 :
646 :
647 :
648 :
649 :
650 :
651 :
652 :
653 :
654 :
655 :
656 :
657 :
658 :
659 :
660 :
661 :
662 :
663 :
664 :
665 :
666 :
667 :
668 :
669 :
670 :
671 :
672 :
673 :
674 :
675 :
676 :
677 :
678 :
679 :
680 :
681 :
682 :
683 :
684 :
685 :
686 :
687 :
688 :
689 :
690 :
691 :
692 :
693 :
694 :
695 :
696 :
697 :
698 :
699 :
700 :
701 :
702 :
703 :
704 :
705 :
706 :
707 :
708 :
709 :
710 :
711 :
712 :
713 :
714 :
715 :
716 :
717 :
718 :
719 :
720 :
721 :
722 :
723 :
724 :
725 :
726 :
727 :
728 :
729 :
730 :
731 :
732 :
733 :
734 :
|
' #############################################################################
' #############################################################################
'
' Deutsch:
' =========
' Dieser Quellcode ist von Folke Rinneberg
' Webseite: http://www.Rinneberg.de/programming/gfa.htm
' E-Mail: Folke_R@gmx.de
'
' Du kannst diesen Quellcode frei nutzen, Veraendern und Erweitern.
' Es waehre nett, wenn du mir mitteilen wuerdest, wenn du diesen Quellcode
' benutzt/veraenderst oder erweiterst. Verbesserungen/Erweiterung wuerde
' ich vielleicht gerne uebernehmen, Nutzung wuerde ich vielleicht gerne an
' dieser Stelle verlinken.
'
' Die Softwarequalitaet ist vermutlich nicht besonders hoch, da ich noch
' jung und unerfahren war, als ich ihn schrieb. Eine UEberarbeitung ist
' nicht geplant.
'
'
' English:
' =========
' This source code was written by Folke Rinneberg
' Web Site: http://www.Rinneberg.de/programming/gfa.htm#english
' e-mail: Folke_R@gmx.de
'
' You are free to use, modify and extend this source code.
' It would be nice, if you contact me (e.g. by e-mail) when you
' use/modify or extend this source code. Perhaps I would
' put Improvements or extensions to this web site.
' Usage of this source code may be linked here.
'
' The quality of this source code may be quite low, because I was young and
' had few experiences with programming when I wrote this source code.
' I have no plans to improve this source code by myself.
'
' #############################################################################
' #############################################################################
'
'
Cls
'
Open "o",#1,"opti_erg.txt"
'
'
Print "Programm zum Testen, welche Optimierungen im Compilat was bringen!"
Print #1,"Programm zum Testen, welche Optimierungen im Compilat was bringen!"
Print "--------------------------------------------------------------------------------";
' Faktor
'
' f"+Chr$(129)+"r x=0 .. 7 gilt 7-x == 7 XOR x ca 16-18% schneller | 1.2
@Xor_7minus_test
Print "--------------------------------------------------------------------------------";
Print "Press Any-Key"
~Inp(2)
'
' f"+Chr$(129)+"r x>0 gilt x MOD 8 == x AND 7 ca 85-87% schneller | 6.6
' (analog f"+Chr$(129)+"r andere 2er Potenzen)
@Mod_and_test
Print "--------------------------------------------------------------------------------";
Print "Press Any-Key"
~Inp(2)
'
' f"+Chr$(129)+"r x>0 gilt x DIV 8 == SHR(x,3) ca 19-21% schneller | 1.25
' (analog f"+Chr$(129)+"r andere 2er Potenzen)
@Div_shr_test
Print "--------------------------------------------------------------------------------";
~Inp(2)
Print "Press Any-Key"
' !!! x * 8 == SHL(x,3) langsamer !!!!!!!!!!!!!!!!!
' ------------------------------------------------------------------------------
'
@Local_global_test ! ca 45-54% schneller | 2.00
Print "--------------------------------------------------------------------------------";
Print "Press Any-Key"
~Inp(2)
'
'
'
'
Close #1
'
PROCEDURE Xor_7minus_test
'
' f"+Chr$(129)+"r x=0 .. 7 gilt 7-x == 7 XOR x
'
' f"+Chr$(129)+"r Integers& : 18,166% (auf meinem MegaST 2)
' f"+Chr$(129)+"r Longinteger% : 16,375% (auf meinem MegaST 2)
'
' ---------------------------------------------------------
' Test, ob die Ergebisse beider Operationen wirklich gleich
For I&=0 To 7
If (7-I&)<>(7 Xor I&)
Print "f";
Else
Print "o";
Endif
Next I&
Print
'
Print ""+Chr$(27)+"p7-x& : x[0..7]"+Chr$(27)+"q ";
Print #1,"7-x& : x[0..7] "; !!! DATEI
T%=Timer
For I2&=0 To 5000
For I&=0 To 7
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
A&=7-I&
Next I&
Next I2&
T1%=Timer-T%
Print T1%
Print #1,T1% !!! DATEI
'
Print ""+Chr$(27)+"p7 xor x& : x[0..7]"+Chr$(27)+"q ";
Print #1,"7 xor x& : x[0..7] "; !!! DATEI
T%=Timer
For I2&=0 To 5000
For I&=0 To 7
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
A&=7 Xor I&
Next I&
Next I2&
T2%=Timer-T%
Print T2%
Print #1,T2% !!! DATEI
'
Print ""+Chr$(27)+"p7-x% : x[0..7]"+Chr$(27)+"q ";
Print #1,"7-x% : x[0..7] "; !!! DATEI
T%=Timer
For I2&=0 To 5000
For I%=0 To 7
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
A%=7-I%
Next I%
Next I2&
T3%=Timer-T%
Print T3%
Print #1,T3% !!! DATEI
'
Print ""+Chr$(27)+"p7 xor x% : x[0..7]"+Chr$(27)+"q ";
Print #1,"7 xor x% : x[0..7] "; !!! DATEI
T%=Timer
For I2&=0 To 5000
For I%=0 To 7
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
A%=7 Xor I%
Next I%
Next I2&
T4%=Timer-T%
Print T4%
Print #1,T4% !!! DATEI
'
Print ""+Chr$(27)+"pleere schleife: &"+Chr$(27)+"q ";
Print #1,"leere schleife: & "; !!! DATEI
T%=Timer
For I2&=0 To 5000
For I&=0 To 7
Next I&
Next I2&
T5%=Timer-T%
Print T5%
Print #1,T5% !!! DATEI
Print ""+Chr$(27)+"pleere schleife: %"+Chr$(27)+"q ";
Print #1,"leere schleife: % "; !!! DATEI
T%=Timer
For I2&=0 To 5000
For I%=0 To 7
Next I%
Next I2&
T6%=Timer-T%
Print T6%
Print #1,T6% !!! DATEI
'
Print "Ergebnise:"
Print "7 XOR x& ist ";(1-(T2%-T5%)/(T1%-T5%))*100;"% schneller als 7 - x&"
Print "7 XOR x% ist ";(1-(T4%-T5%)/(T3%-T5%))*100;"% schneller als 7 - x%"
Print #1,"7 XOR x& ist ";(1-(T2%-T5%)/(T1%-T5%))*100;"% schneller als 7 - x&" !!!DATEI
Print #1,"7 XOR x% ist ";(1-(T4%-T5%)/(T3%-T5%))*100;"% schneller als 7 - x%" !!! DATEI
Return
PROCEDURE Mod_and_test
'
' f"+Chr$(129)+"r x>0 gilt x MOD 8 == x AND 7
' (analog f"+Chr$(129)+"r andere 2er Potenzen)
'
' f"+Chr$(129)+"r Integers& : 87.5169% (auf meinem MegaST 2)
' f"+Chr$(129)+"r Longinteger% : 85.7531% (auf meinem MegaST 2)
'
' ---------------------------------------------------------
' Test, ob die Ergebisse beider Operationen wirklich gleich
For I&=0 To 79 ! gilt auch bei gr"+Chr$(148)+""+Chr$(158)+"eren
If (I& Mod 8)<>(I& And 7)
Print "f";
Else
Print "o";
Endif
Next I&
'
Print ""+Chr$(27)+"px& Mod 8 : x>=0"+Chr$(27)+"q ";
Print #1,"x& Mod 8 : x>=0 "; !!! DATEI
T%=Timer
For I2&=0 To 30000
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
A&=I& Mod 8
Next I2&
T1%=Timer-T%
Print T1%
Print #1,T1% !!! DATEI
'
Print ""+Chr$(27)+"px& And 7 : x>=0"+Chr$(27)+"q ";
Print #1,"x& And 7 : x>=0 "; !!! DATEI
T%=Timer
For I2&=0 To 30000
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
A&=I& And 7
Next I2&
T2%=Timer-T%
Print T2%
Print #1,T2% !!! DATEI
'
Print ""+Chr$(27)+"px% Mod 8 : x>=0"+Chr$(27)+"q ";
Print #1,"x% Mod 8 : x>=0 "; !!! DATEI
T%=Timer
For I%=0 To 30000
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
A%=I% Mod 8
Next I%
T3%=Timer-T%
Print T3%
Print #1,T3% !!! DATEI
'
Print ""+Chr$(27)+"px% And 7 : x>=0"+Chr$(27)+"q ";
Print #1,"x% And 7 : x>=0 "; !!! DATEI
T%=Timer
For I%=0 To 30000
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
A%=I% And 7
Next I%
T4%=Timer-T%
Print T4%
Print #1,T4% !!! DATEI
'
Print ""+Chr$(27)+"pleere schleife: &"+Chr$(27)+"q ";
Print #1,"leere schleife: & "; !!! DATEI
T%=Timer
For I2&=0 To 30000
Next I2&
T5%=Timer-T%
Print T5%
Print #1,T5% !!! DATEI
Print ""+Chr$(27)+"pleere schleife: %"+Chr$(27)+"q ";
Print #1,"leere schleife: % "; !!! DATEI
T%=Timer
For I%=0 To 30000
Next I%
T6%=Timer-T%
Print T6%
Print #1,T6% !!! DATEI
'
Print "Ergebnise:"
Print "x& And 7 ist ";(1-(T2%-T5%)/(T1%-T5%))*100;"% schneller als x& Mod 8"
Print "x% And 7 ist ";(1-(T4%-T5%)/(T3%-T5%))*100;"% schneller als x% Mod 8"
Print #1,"x& And 7 ist ";(1-(T2%-T5%)/(T1%-T5%))*100;"% schneller als x& Mod 8" !!! DATEI
Print #1,"x% And 7 ist ";(1-(T4%-T5%)/(T3%-T5%))*100;"% schneller als x% Mod 8" !!! DATEI
Return
PROCEDURE Div_shr_test
'
' f"+Chr$(129)+"r x>0 gilt x DIV 8 == shr(x,3)
' (analog f"+Chr$(129)+"r andere 2er Potenzen)
'
' f"+Chr$(129)+"r Integers& : 21.52% (auf meinem MegaST 2)
' f"+Chr$(129)+"r Longinteger% : 19.723% (auf meinem MegaST 2)
'
' ---------------------------------------------------------
' Test, ob die Ergebisse beider Operationen wirklich gleich
For I&=0 To 79 ! gilt auch bei gr"+Chr$(148)+""+Chr$(158)+"eren
If (I& Div 8)<>Shr(I&,3)
Print "f";
Else
Print "o";
Endif
Next I&
'
Print ""+Chr$(27)+"px& Div 8 : x>=0"+Chr$(27)+"q ";
Print #1,"x& Div 8 : x>=0 "; !!! DATEI
T%=Timer
For I2&=0 To 30000
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
A&=I& Div 8
Next I2&
T1%=Timer-T%
Print T1%
Print #1,T1% !!! DATEI
'
Print ""+Chr$(27)+"pshr(x&,3) : x>=0"+Chr$(27)+"q ";
Print #1,"shr(x&,3) : x>=0 "; !!! DATEI
T%=Timer
For I2&=0 To 30000
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
A&=Shr(I&,3)
Next I2&
T2%=Timer-T%
Print T2%
Print #1,T2% !!! DATEI
'
Print ""+Chr$(27)+"px% Div 8 : x>=0"+Chr$(27)+"q ";
Print #1,"x% Div 8 : x>=0 "; !!! DATEI
T%=Timer
For I%=0 To 30000
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
A%=I% Div 8
Next I%
T3%=Timer-T%
Print T3%
Print #1,T3% !!! DATEI
'
Print ""+Chr$(27)+"pshr(x%,3) : x>=0"+Chr$(27)+"q ";
Print #1,"shr(x%,3) : x>=0 "; !!! DATEI
T%=Timer
For I%=0 To 30000
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
A%=Shr(I%,3)
Next I%
T4%=Timer-T%
Print T4%
Print #1,T4% !!! DATEI
'
Print ""+Chr$(27)+"pleere schleife: &"+Chr$(27)+"q ";
Print #1,"leere schleife: & "; !!! DATEI
T%=Timer
For I2&=0 To 30000
Next I2&
T5%=Timer-T%
Print T5%
Print #1,T5% !!! DATEI
Print ""+Chr$(27)+"pleere schleife: %"+Chr$(27)+"q ";
Print #1,"leere schleife: % "; !!! DATEI
T%=Timer
For I%=0 To 30000
Next I%
T6%=Timer-T%
Print T6%
Print #1,T6% !!! DATEI
'
Print "Ergebnise:"
' f"+Chr$(129)+"r x>0 gilt x DIV 8 == shr(x,3)
Print "Shr(x&,3) ist ";(1-(T2%-T5%)/(T1%-T5%))*100;"% schneller als x& Div 8"
Print "Shr(x%,3) ist ";(1-(T4%-T5%)/(T3%-T5%))*100;"% schneller als x% Div 8"
Print #1,"Shr(x&,3) ist ";(1-(T2%-T5%)/(T1%-T5%))*100;"% schneller als x& Div 8" !!! DATEI
Print #1,"Shr(x%,3) ist ";(1-(T4%-T5%)/(T3%-T5%))*100;"% schneller als x% Div 8" !!! DATEI
Return
PROCEDURE Local_global_test
Local A1&,B1&,C1&,D1&,E1&,F1&
Local A1%,B1%,C1%,D1%,E1%,F1%
'
' local / global - Vergleich
'
' global & ist 54.54545454545% schneller als local & (auf meinem MegaST 2)
' global & ist 45.57195571956% schneller als local % (auf meinem MegaST 2)
'
' ---------------------------------------------------------
Print "vergleich: Zugriff/Zuweisung aus locale und globale vareablen!"
Print #1,"vergleich: Zugriff/Zuweisung aus locale und globale vareablen!" !!! DATEI
Print ""+Chr$(27)+"p& global :"+Chr$(27)+"q";
Print #1,"& global :"; !!! DATEI
T%=Timer
For I&=0 To 20000
A&=B&
B&=C&
C&=D&
D&=E&
E&=F&
A&=B&
B&=C&
C&=D&
D&=E&
E&=F&
A&=B&
B&=C&
C&=D&
D&=E&
E&=F&
A&=B&
B&=C&
C&=D&
D&=E&
E&=F&
Next I&
T1%=Timer-T%
Print T1%
Print #1,T1% !!! DATEI
'
Print ""+Chr$(27)+"p& local :"+Chr$(27)+"q";
Print #1,"& local :"; !!! DATEI
T%=Timer
For I&=0 To 20000
A1&=B1&
B1&=C1&
C1&=D1&
D1&=E1&
E1&=F1&
A1&=B1&
B1&=C1&
C1&=D1&
D1&=E1&
E1&=F1&
A1&=B1&
B1&=C1&
C1&=D1&
D1&=E1&
E1&=F1&
A1&=B1&
B1&=C1&
C1&=D1&
D1&=E1&
E1&=F1&
Next I&
T2%=Timer-T%
Print T2%
Print #1,T2% !!! DATEI
'
Print ""+Chr$(27)+"p% global :"+Chr$(27)+"q";
Print #1,"% global :"; !!! DATEI
T%=Timer
For I%=0 To 20000
A%=B%
B%=C%
C%=D%
D%=E%
E%=F%
A%=B%
B%=C%
C%=D%
D%=E%
E%=F%
A%=B%
B%=C%
C%=D%
D%=E%
E%=F%
A%=B%
B%=C%
C%=D%
D%=E%
E%=F%
Next I%
T3%=Timer-T%
Print T3%
Print #1,T3% !!! DATEI
'
Print ""+Chr$(27)+"p% local :"+Chr$(27)+"q";
Print #1,"% local :"; !!! DATEI
T%=Timer
For I%=0 To 20000
A1%=B1%
B1%=C1%
C1%=D1%
D1%=E1%
E1%=F1%
A1%=B1%
B1%=C1%
C1%=D1%
D1%=E1%
E1%=F1%
A1%=B1%
B1%=C1%
C1%=D1%
D1%=E1%
E1%=F1%
A1%=B1%
B1%=C1%
C1%=D1%
D1%=E1%
E1%=F1%
Next I%
T4%=Timer-T%
Print T4%
Print #1,T4% !!! DATEI
'
Print ""+Chr$(27)+"pleere schleife: &"+Chr$(27)+"q ";
Print #1,"leere schleife: & "; !!! DATEI
T%=Timer
For I&=0 To 20000
Next I&
T5%=Timer-T%
Print T5%
Print #1,T5% !!! DATEI
Print ""+Chr$(27)+"pleere schleife: %"+Chr$(27)+"q ";
Print #1,"leere schleife: % "; !!! DATEI
T%=Timer
For I%=0 To 20000
Next I%
T6%=Timer-T%
Print T6%
Print #1,T6% !!! DATEI
'
Print "Ergebnise:"
Print "global & ist ";(1-(T1%-T5%)/(T2%-T5%))*100;"% schneller als local &"
Print "global % ist ";(1-(T3%-T5%)/(T4%-T5%))*100;"% schneller als local %"
Print #1,"global & ist ";(1-(T1%-T5%)/(T2%-T5%))*100;"% schneller als local &" !!! DATEI
Print #1,"global % ist ";(1-(T3%-T5%)/(T4%-T5%))*100;"% schneller als local %" !!! DATEI
Return
'
' Weitere Optimierungen:
' -----------------------
' 1. MEHR SPEICHER ZUR LAUFZEIT
' Wenn Du w"+Chr$(132)+"hrend der entwicklung deines Programms oft Vareablen verwendet
' hast, die in der endg"+Chr$(129)+"ltigen Version nicht mehr vorkommen, dann solltest
' du wissen, das diese trotzdem zur Laufzeit des compilierten Programms auch
' weiterhin Arbeitsspeicher wegnehmen.
' (obwohl sie nirgends im Programm auftauchen!!!)
' L"+Chr$(148)+"sung: Speicher dein Programm einmal mit Save,A als Listing ab
' (erst alle proceduren/Funktionen aufklaoppen) und lade das
' Programm dann wieder mit Merge. Nun kannst du es wieder mit
' Save speichern (Programml"+Chr$(132)+"nge ist wir vor der ganzen Prozedur)
' (auch die l"+Chr$(132)+"nge des Comilierten Programms sollte sich nicht
' ge"+Chr$(132)+"ndert haben!) Nun steht dier zur Laufzeit mehr speicher zur
' Verf"+Chr$(129)+"gung!!!
' Hinweis:Inlines m"+Chr$(129)+"ssen mach dem Merge neu geladen werden!!!
|