home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / STOSSER / STOSSE07.MSA / A / 12.PNE < prev    next >
Text File  |  1987-04-22  |  3KB  |  109 lines

  1.                            Understanding STOS Basic
  2.                            ************************
  3.  
  4. Copied from the STOS Magazine, issue 8, August 1991.
  5. Thanks to the kind permission of Dion Guy, who retains the copyright.
  6.  
  7.              This month we discuss speeding up your programs
  8.              ***********************************************
  9.  
  10. If you are writing certain kinds of programs you will need every bit of 
  11. speed you can get. If you go the right way about things you can get a 
  12. considerable speed increase in areas of your programs. This month we 
  13. discuss various commands and how quickly they execute. We also offer 
  14. advice on how to improve the speed of your programs.
  15.  
  16. In STOS there are several different ways to do a loop. There are the 
  17. commands:-
  18.  
  19. For...Next, Repeat...Until and While...Wend
  20.  
  21. But which of these commands is fastest while performing a loop? Here are 
  22. a few tests to find out:
  23.  
  24. 10 timer=0
  25.  
  26. 20 for x=0 to 10000
  27.  
  28. 30 next x
  29.  
  30. 40 print timer
  31.  
  32. When you run this you should get a value of about 39. Try this
  33.  
  34. 10 timer=0
  35.  
  36. 20 repeat
  37.  
  38. 30 inc x
  39.  
  40. 40 until x=10000
  41.  
  42. 50 print timer
  43.  
  44. This should produce a value of around 147. Finally-
  45.  
  46. 10 timer=0
  47.  
  48. 20 while x<10000
  49.  
  50. 30 inc x
  51.  
  52. 40 wend
  53.  
  54. 50 print timer
  55.  
  56. This should give you a value around 150.
  57.  
  58. Note that the Repeat...Until and While...Wend commands take a lot longer 
  59. than the For...Next loop. 
  60.  
  61. The reason for this is that the Repeat... Until and While...Wend loops 
  62. each had an extra command to deal with. This was "inc X". The For...Next 
  63. loop automatically incremented the variable X but the other two loops had 
  64. to do it manually, using an extra command.
  65.  
  66. Of course, Repeat...Until and While...Wend can do things that For...Next 
  67. would find difficult (or even impossible) to do, but in this instance 
  68. For...Next was much faster.
  69.  
  70. The For...Next loop can be improved upon even more though. Try this 
  71. program:
  72.  
  73. 10 timer=0
  74.  
  75. 20 for x=0 to 10000 : next x
  76.  
  77. 30 print timer
  78.  
  79. This will give you a value of around 34 where as the previous For...Next 
  80. loop took 39 50ths of a second. The reason for this is that STOS has one 
  81. less line to deal with, and can therefore run the program a bit faster.
  82.  
  83. Let us move off loops and onto some other commands. Try this program:
  84.  
  85. 10 timer=0
  86.  
  87. 20 for A=0 to 10000
  88.  
  89. 30 z=z+1
  90.  
  91. 40 next A
  92.  
  93. 50 print timer
  94.  
  95. This will give a value of about 157. Now try altering line 30 to:
  96.  
  97. 30 inc z
  98.  
  99. When you run it now it will only be about 74! That is some speed 
  100. increase! The simple reason for this is that STOS can perform an INc or 
  101. DEC instruction much faster than a var=var+1 or var=var-1 (var means 
  102. variable). Obviously you could improve the speed even more if you put all 
  103. the commands on one line as explained above.
  104.  
  105. That concludes our speed tests for now!
  106.  
  107.  
  108.  
  109.