english-banner English version of this page
 
deutsche Flagge
Portait-Photo
über mich

Startseite
Links/BookmarksLinks
Programmieren
   - CodeOptimierung
   - CodeConventionen
   - GFA-Basic

Atari
Hardware-
Basteleien

Witze
Zitate
Sprüche
Braille
Kunst
Buch-Tip
E-Mail an Folke_R@gmx.de
historisches
Impressum
Listing: listings/OPTI.LST
(generated: 16.05.2008)
    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!!!



Legende:
ß ersetzt durch "Chr$(158)"
ä ersetzt durch "Chr$(132)"
ö ersetzt durch "Chr$(148)"
ü ersetzt durch "Chr$(129)"
nicht-ASCII 27 ersetzt durch "Chr$(27)"



legend:
ß replaced by "Chr$(158)"
ä replaced by "Chr$(132)"
ö replaced by "Chr$(148)"
ü replaced by "Chr$(129)"
non-ASCII 27 replaced by "Chr$(27)"

zurück zur GFA-BASIC-Seite des Folkes
zurück zur Programmier-Seite des Folkes
zurück zur Startseite des Folkes
Lage dieser Seite:"http://www.Rinneberg.de/programming/gfa.htm"
"http://www.Folke-Rinneberg.de/programming/gfa.htm"

Ende des deutschsprachigen Abschnitts
german-line

 
english-line
Start of the English translated part
english banner
Portait-Photo
about myself

Home
Links/Bookmarkslinks
programming
   - CodeOptimisation
   - CodeConventions
   - GFA-basic

Atari
hardware-
modifications

jokes
quotations
patter
braille
art
book-tip
E-Mail an Folke_R@gmx.de
history
imprint


Sorry there is no, and will never be, a translation of the source code.



back to Folke's GFA-Basic page
back to Folke's programming page
back to Folke's homepage
Location of this page: "http://www.Rinneberg.de/programming/gfa.htm"
"http://www.Folke-Rinneberg.de/programming/gfa.htm"
Help to improve this web page:

Because I am no native English speaker, it is likely that there can be made a lot of improvements to my translation. I am very interested in every proposal how to improve the English part of this web page.