NS Basic/Symbian OS is based on NS Basic/Palm, running on the Symbian OS using the StyleTap engine. It's reasonable to be concerned about performance in this configuration.
We ran a series of benchmarks on the software, which revealed how much of an effect this is likely to have on real world performance. Our methodology was to divide the tests into different functions to see if there were specific bottlenecks.
Test equipment was a Nokia E61 with a 206 mhz processor and a Palm TX with a 312 mhz processor. The processor's clock speed will directly affect the results. We could not find two devices with the same clock speed, so we had to scale the results.
The executables on both platforms were byte for byte identical.
There are a couple of reasons why running on top of StyleTap will not result in a major performance hit. First, the most expensive operations are the ones that write to a screen or read/write to a file. These operations are handled by system calls within the operating system. The amount of code that gets executed by the OS to do a screen update vastly dwarfs the actual processing most programs do themselves. StyleTap acts as a traffic cop on system calls, translating the call to the appropriate Symbian OS function and letting it do the work. The translation is generally a fairly minor operation compared to the work the system call actually does.
Secondly, Palm OS already uses a similar approach when running on ARM processors. PACE ("Palm Application Compatibility Environment", which allows Palm OS programs to run on ARM processors, is an emulator, similar in function to StyleTap. The ARM processors are so fast that even under PACE, Palm apps run much faster than they did on the previous generation Dragonball processors. Think of StyleTap as PACE for Symbian OS.
Of course, apps can be written in Palm OS that run as native ARM apps, bypassing PACE. This results in dramatically increased speed for CPU bound tasks. What developers found is that the difference wasn't that much in the real world. Remember how most of the processing is really inside the operating system's calls? Those run the same speed regardless whether you're in PACE or running natively.
What the tests show is that NS Basic/Palm apps are likely to run faster on Symbian OS devices.
In this test, we tested how fast code that does not make any system calls executes. The test program was simple:
x = 100000
Do While (X > 0)
x = x - 1
y = y + 2
On the Palm TX, this took 102 seconds. Not bad for doing a couple of computations 100,000 times. NS Basic/Symbian OS did this in just 4 seconds, taking full advantage of the ARM processor. (ARM Native on the TX is a bit faster at 3 seconds).
This test shows that NS Basic/Symbian is much, much faster than a regular NS Basic/Palm app, and should be more than fast enough for all but the heaviest calculations.
File I/O Tests
In this test, we created a file, wrote 10,000 records to it, read the entire file sequentially, then did 10,000 random reads into the file.
On the Palm TX, the total time was 135 seconds. NS Basic/Symbian OS did it in 29 seconds. (ARM Native on the TX was also much slower, at 103 seconds).
This test shows that file I/O is substantially faster on Symbian OS devices.
Screen I/O Tests
The torture test we designed for screen I/O was an app with two forms. Each form has a button, a field, a listbox and a popup. The field is populated each time the form is loaded with 20 lines of data. The forms switch back and forth until we have done 100 form loads.
On the Palm TX, the total time was 12 seconds. NS Basic/Symbian OS was slower, at 39 seconds. (ARM Native on the TX was no faster.)
While the Palm was quicker in this test, it is doubtful that the difference would be noticeable in the real world. Filling a screen still takes less than 0.5 seconds, which is quick enough.
The Real World
Enough of the theory. What happens with real programs in the real world? Tests by actual users confirm what we have seen above: apps run faster on Symbian OS devices than they did under Palm OS.