The discussion about the new XMLSERVICE performance on the iSeriesNetwork forums pointed us to a possible improvement for the XMLSERVICE which is not shipped as standard. The poster suggested that we change the Compiler options for the RPG programs to *FULL optimization and try the tests again. I would question why the CL programs which are shipped do not have this already set if its a known improvement. But we dutifully went through the CL programs and set the Optimization parameters and created the programs again.
Here is the result of the tests now, it should be noted that the initial call is a lot slower than a subsequent call so we took the liberty of refreshing the screen a couple of times before copying the results.
New Zend Toolkit. Input value is changing on each call.
Time (loop=5000) total=22.32 sec (4.46 ms per call)
Parameter name Input value Output value
var1 Y C
var2 Z D
var3 001.0001 321.1234
var4 0000000003.04 1234567890.12
ds1 A E
ds2 B F
ds3 005.0007 333.3330
ds4 0000000006.08 4444444444.44
As you can see it does show an improvement over the previous test, but it is still far slower than the EASYCOM for PHP process. The poster does mention that we should be running on the latest version 1.5 which we checked, the programs are not noted with the release level (maybe that would be a good idea) but the Zip file we downloaded is xmlservice-rpg-1.5 which should indicate the contents are the version 1.5 code level? If not maybe the above numbers will also improve with the correct level of code.
These tests were run on a fairly low end system, maybe the use of a bigger system with lots of memory and CPU will change the span between the 2 processes? If you do have a big system and want to run the same tests we did we will be happy to publish your results.
We have also created a new group on LinkedIn which will discuss the use of EASYCOM for PHP, you can join the group and engage with us in making PHP for IBM i a great solution for application modernization.