NS BASIC Tech Note May 8, 1997 30. Benchmarks on MP 110 through MP 2000 -------------------------------------------------------------------------- We managed to get our hands on the new eMate 300 and MessagePad units and ran some benchmarks on them. Before interpreting the results, be sure and read the Notes, Disclaimers and Observations section below! We also got to compare the speed of NS BASIC to Microsoft's Visual BASIC and Visual BASIC for Applications. See below! Unit MP110 MP130 eMate300 MP2000 NSB Rev 2.52 3.60 3.60 3.60 CPU Intensive Tests: Overhead 397 113 104 35 GOSUB 4005 983 717 246 IF 841 194 72 1 LET= 823 189 80 6 GOTO 1111 302 173 21 ---- ---- ---- ---- CPU 7177 1781 1146 309 Screen Output Intensive Tests: WINDOW 78 57 40 11 SHOW 270 155 121 57 HIDE 219 142 114 53 WPRINT 398 300 340 143 ---- ---- ---- ---- Screen 965 655 614 265 File I/O Intensive Tests: OPEN 171 261 85 18 PUT 1165 999 365 290 SEQ 329 78 89 31 RND 359 94 67 28 DEL 1099 686 365 264 ---- ---- ---- ---- Soup 3122 2117 971 631 ==== ==== ==== ==== Overall 20861 7546 5464 2128 Notes, Disclaimers and Observations 1. These tests were run on pre-release units of the eMate 300 and MP 2000. The final versions from Apple may have different results. 2. The test for the MP110 was run using an older version of NS BASIC. There were substantial performance improvements in NS BASIC itself, beyond the changes Apple made in changing from Newton OS 1.3 to 2.0. The performance improvement is a combination of Apple's and NS BASIC's work. 3. All times are elapsed: lower times are faster. 4. In the CPU test, the eMate was 76% faster than the 130, while the MP 2000 was 5.7 times faster. Tightly localized code (IF, LET, GOTO) ran much faster (15 times), indicating just how fast the StrongArm is. Tests which involved more widely spread out code were slower, as it takes time to reference code not on the current page and load it into memory. 5. The Screen test showed some improvement on the eMate, and more than doubled on the MP 2000. Remember that some of the increased CPU speed is eaten up by going from a 240 by 320 single bit display to a screen twice the size with 4 bit gray scale. Updating information on the screen (WPRINT test) was actually a bit slower on the eMate 300 than on the MP 130. Opening, showing and hiding windows was still faster: there's a lot more CPU work in setting up a window than updating it. 6. The File I/O test was a welcome improvement. Writing to flash memory is slow, and we really didn't expect much here. What did they do to it so that the PUT and DEL operations were sped up so much? 7. The Overall result reflects a somewhat arbitrary blend of the 3 groups of tests. Some applications you run may be more CPU intensive, without accessing much data, and will give different overall results. NS BASIC speed compared to PC based BASICs ------------------------------------------- The benchmark programs are similar - only syntactic changes. NS BASIC A Visual BASIC ------------------------- ----------------------------------- 0010 t=ticks()+600 Sub Main 0020 i=0 T=Timer+10 0030 do While Timer < T 0040 let i=i+1 i=i+1 0050 loop until ticks()>t Wend 0060 print i/10 MsgBox I\10 & + loops per second" End Sub NS BASIC B ------------------------- 0010 function loop(t) begin local i:=0; while ticks()>t do i:=i+1;i end 0020 print u:loop(ticks()+600) (Higher is better) MessagePad 2000, NS BASIC 3.6 B 17297 Pentium 120, Visual BASIC 5600 Pentium 120, Sax BASIC/WinWrap 3800 MessagePad 2000, NS BASIC 3.6 A 436 Pentium 120, Small Basic Interpeter 340 The Pentium results are from the June'97 issue of Dr. Dobbs Journal. NS BASIC Program A is the same code, as close as possible. Program B does the same thing the way a savvy NS BASIC programmer would do it. Conclusion: NS BASIC stacks up pretty good in these tests. It's certainly in the same ballpark, and is in some cases much faster!