Hi folks:
I ran a test over Ikon and EP10 comparing the performance between these two units with the same application I made. The results were the same in execution time. That result surprised to me because I was expecting a shocking improved performance. But not.
Should I have to do something different in my coding to get a better performance, it might be to use another SDK, dll. or similar thing and take advantage of this new architecture? My application is developped on Visual Studio 2008 C# language.
Thank you,
Carlos
Good afternoon Carlos,
Would you mind sharing additional information about the application you used to conduct your tests?What does it do, which namespaces / APIs does it use, what kind of operations / tasks does it execute, etc ?
Thanks in advance!Jacques
Hi Jacques:
Thanks for your quick answer.
In first hand I wonder if I must to use something different(SDK, DLL or commands) to get the best performance possible with Sitara CPU since that’s superscalar technology. I didn’t touch anything of my application developed for Ikon initially. Something should be different at developer time to do this?
About your questions :
1. Kind of Application: it’s a Utilities Application for Thermoelectric Generator Companies. This application makes a survey-style supervision of the plant to identify variables behavior in short and long time. It’s used for Gas, Oil and Fuel plants and helps to preventive and predictive maintenance. Since there are a lot of variables to consider and process in almost the same time, memory and processor capabilities of Ikon are not enough sometimes.
2. Namespaces:
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
3. Description : the scenary is: We have a sql server compact edition database, with 8000 records distribuited in differente tables. The performance issue is with 3 forms that can have two or three combos. The selectedvalue in the first combo is used to load data to the second combo. The queries to select the data have inner joins but this not take time. The delay is when the combos is getting populated. To populate the combos we set the datasource, the valuemember and the displaymember. All of this using c# code, not other api or sdk.
Regards,
Muy buen post Carlos!
Espero ansioso el feedback de Jacques...
by the way, we used Windows Mobile 6.1 in Ikon ( remember, cpu Marvel Xscale @ 624 MHz at 128 MB of RAM). With another device, Smartphone LG-GW550 at 256 MB of RAM and Windows Mobile 6.5, we did get a better performance of 20% in application speed execution in comparison with Ikon. In this way, EP10 should have a 20% of higher performance in speed just for availabmemory amount. If we add the higher cpu speed of EP10( 800 MHz) and superscalar technologya we should have a much much better performance in speed at least for application execution. I'm not sure if my calculations are right.
same eperience... we do not see visual difference in executing .NET application on EP10 or XT10 comparing WAP G3, IKON.
Can I make a suggestion to try? Turn off ClearType and let us know if you see a performance increase, or no change. -sean
Sean M. Kennedy {Americas Help Desk Application Support}
Hi Guys! Does anyone have any update on this?
I didn't get any feedback on the ClearType suggestion. -sean
Dear Sean and all people:
We did turn off the ClearType and Gyroscope on EP10 to get the closest similar possible functionality on both EP-10 and Ikon. After several tests with the same modified application on both units results are:
Times to execution the same set of instructions is 4.5%, 14.6% and 100% higher in EP-10 than Ikon for some of them.
Conclusion: We must doing something wrong at OS(Win Embedded Hand-Held) or Architecture level because has no sense EP-10 be slower than Ikon.
In this way, the question remains active, what is the right way to take advantage of new OS and new architecture and get a real better performance for applicacions developped on Visual Studio .NET 2008 C# Language for EP-10? We should use some new set of instructions? New LIbraries or DLLs?
To be clear...
You mentioned earlier that the bottle-neck was populating combo-boxes... So, if you remove SQL from the equation, and setup a test of merely doing large combo-box population, does that show quite a bit of difference? Or, is having the SQL interaction to some degree mandatory in generating the slowness...
Have you tried running the application from RAM Disk? Does this incur the same problems?
Hi,
Regarding Steven advice, all I can tell you is that we have watched one customer application running 20% faster when installing and running it from \RAM Disk folder. EP10 is used for a FFA application which uses CrEme JVM and SAP Netweaver run-time libraries.There are two constraints in this approach we are facing now.
i) File sytem available RAM is not big enough for them (just 8MB). But enlarging it using this http://community.psion.com/discussions/f/67/p/2140/8996.aspx#8996 approach is working at our tests..
ii) \RAM Disk folder contents are deleted whenever EP10 boots. Customer is developing one script which copies programs, JVM, libraries and resources needed from non-volatile memory to \RAM Disk folder. This script is launched from \Windows\Startup folder whenever EP10 starts.
- Felipe
Felipe and others,
Some recommendations that I'll be making on this thread are not to be confused for permanent workarounds, and this is especially true of running applications from the RAM Disk.
Vertical Market applications have so many moving parts to them, and they are tricky to duplicate from our end due to their highly specific nature. That's why we may be asking to run the applications in several different scenarios to get a broad view of all the variables.
If possible, we would like to be able to run these applications from our locations (devices), as this would give us time to run our own tests with different debug levels enabled.
I agree with Steven on this topic, Since the feedback for the Cleartype shows that the Population of the data is taking longer on EP10, We need to look at this firsthand. In this manner we can look at issues with the dbnetlib.dll for SQL compact, and the SQL client (which we need to investigate if there is a Network constraint or not) and the JVM, which is an additional point of "Interpreted" vs native applications : Which will have issues on New platforms where the Interpreter may not be optimised to operate. -sean
Hello Sean, Felipe, Steven and all audience:
Our application is completely stand alone with an internal database SQL Compact Edition(CE) so all transactions are related to Ikon or EP10 inside platforms and not for/with external communication media or resources.
RAM installation has been not tested but I suppose it would increase speed execution for both platforms Ikon and EP10 and should be higher for EP10 since its bigger RAM amount. According to your note above, we found all Psion devices are coming with just 8.1MB of available RAM for applications. Of course this is a limitation for both Ikon and EP-10. Using the procedure to extend RAM application availability we can get a better performance in both Ikon and EP-10 however we could increase RAM availability up to 31MB.
About SQL transactions, since those are the same for both platforms and are inside SQL CE mobile devices, performance should be proportional in performance. Application performance is related to:
1. RAM Application availability: we found now there is a limitation by default in this amount usable by applications to 8.1MB. Increasing up to 31 MB should give a better performance. QUESTION1: Is possible to increase RAM application availability beyond 31 MB since this unit has 256 MB of RAM to use?
2. CPU Speed(or Instructions Per Second Process): According to Psion information, Sitara of EP-10(800 MHz with dual core CPU) can process between 75% and 115% more instruction per second than a 624MHz single core processor. QUESTION1: Is there some procedure to take advantage of this superscalar architecture or it should be transparent for developers?
3. SOFTWARE ARCHITECTURE: we are using C# of Visual Studio 2008 . Net platform to develop our applications with internal DB SQL-CE. QUESTION3: coding using this environment should take care of some features for Sitara cpu or even with Windows Embedded Hand-Held 6.5.3 in EP-10 to get a better performance?
Carlos 1. RAM Application availability: we found now there is a limitation by default in this amount usable by applications to 8.1MB. Increasing up to 31 MB should give a better performance. QUESTION1: Is possible to increase RAM application availability beyond 31 MB since this unit has 256 MB of RAM to use?
No. In WM 6.5, you're bound to the old slot arechetecture, and that means 32 MB of virtual memory per process...
Carlos 2. CPU Speed(or Instructions Per Second Process): According to Psion information, Sitara of EP-10(800 MHz with dual core CPU) can process between 75% and 115% more instruction per second than a 624MHz single core processor. QUESTION1: Is there some procedure to take advantage of this superscalar architecture or it should be transparent for developers?
Yes, if you're into developing compiler code
However, since we are bound to the Visual Studio 2008 compiler and you are bound to the .NET runtime, it is unlikely that you or I would be able to realize the performance gains of this particular processor, because its my understanding that, as of this date, the current compilers have NOT been updated to opimize for these types of processors. That will probably change in the future, but we're just not there yet. We're still bound to the old ARM constraints
Being a .NET developer means you are going to be far shielded from having to worry (or should worry) about this level of programming. This is even too low for the likes of me, who's used to working at the kernel and driver level.
Microsoft will need to update their compilers and their .NET runtime engines to suite these new processors better (and I'm certain they will)
Carlos 3. SOFTWARE ARCHITECTURE: we are using C# of Visual Studio 2008 . Net platform to develop our applications with internal DB SQL-CE. QUESTION3: coding using this environment should take care of some features for Sitara cpu or even with Windows Embedded Hand-Held 6.5.3 in EP-10 to get a better performance?
As mentioned above, being a high level .NET developer means you will be far shielded from having the ability to modify code to run faster on particular processors.
Now, there may be some SQL algorithms/approaches you can look at (I'm an SQL novice, so I'm not speaking with any degree of expertise here), and there might be some things on the .NET side you can do to boost performance, but by and large you are a slave to the .NET runtime's performance.