Mobile Performance
Mobile Performance
XE5, Firemonkey, Android:
If I put say 2 buttons on a HorzScrollBox component and run it on my Nexus 7, it scrolls smootly and responsively,
If I do the same thing with 2 simple TCharts (one bar series on each), it becomes almost unusably slow and jerky.
Is this something you're aware of? Are improvements likely?
Richard
If I put say 2 buttons on a HorzScrollBox component and run it on my Nexus 7, it scrolls smootly and responsively,
If I do the same thing with 2 simple TCharts (one bar series on each), it becomes almost unusably slow and jerky.
Is this something you're aware of? Are improvements likely?
Richard
Re: Mobile Performance
Hi Richard,
We have reproduced some performance problems without TeeChart and reported to Embarcadero.
Find here the testing application. Drag the trackbar form left to right, right to left etc, then release finger
We have reproduced some performance problems without TeeChart and reported to Embarcadero.
Find here the testing application. Drag the trackbar form left to right, right to left etc, then release finger
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: Mobile Performance
I have the same problem as RichardS. Firmonkey (XE5) works quite fine on iOS and Android (NEXUS 7 Version 2013). But if I tried to use TeeChart (latest Version 2014) the performance is terribly slow, especially on Android.
I use the 'scroll' Feature of the Chart itself (only 10 datapoints in lineChart series), but it is so slow on the Nexus 7, that it takes some seconds (!) to scroll the chart.
I use the 'scroll' Feature of the Chart itself (only 10 datapoints in lineChart series), but it is so slow on the Nexus 7, that it takes some seconds (!) to scroll the chart.
Re: Mobile Performance
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: Mobile Performance
If use BufferedDisplay = true, characters look like this (smeared)
If I use BufferedDisplay = false characters look OK - like this: (clear)
Re: Mobile Performance
Hello,
This is a known effect. Maybe you can vote for this report at Embarcadero's QC:
http://qc.embarcadero.com/wc/qcmain.aspx?d=122373
We also suspect FMX may be doing something wrong when the destiny canvas is a TBitmap (BufferedDisplay=True) giving blurred texts. We're investigating this.
This is a known effect. Maybe you can vote for this report at Embarcadero's QC:
http://qc.embarcadero.com/wc/qcmain.aspx?d=122373
We also suspect FMX may be doing something wrong when the destiny canvas is a TBitmap (BufferedDisplay=True) giving blurred texts. We're investigating this.
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: Mobile Performance
I am using Delphi XE6 with the beta version of TChart, working in iOS.
I am testing on an iPad Mini (non Retina) and an iPad 3 (Retina)
if I use a normal chart with no workarounds, performance is very poor on all scrolling/animated areas, eg. Tab transitions, scrollboxes - this is true for both devices.
If I use Chart.Buffered := True, all the performance problems go away on the Mini with non Retina display, and charts are clear.
But - on a retina display iPad, while performance is also good, the charts are all blurry, and not really acceptable.
I'm really hoping there's a workaround that allows me to get clearly displayed charts and still retain acceptable performance on retina displays?
Thanks
Richard
I am testing on an iPad Mini (non Retina) and an iPad 3 (Retina)
if I use a normal chart with no workarounds, performance is very poor on all scrolling/animated areas, eg. Tab transitions, scrollboxes - this is true for both devices.
If I use Chart.Buffered := True, all the performance problems go away on the Mini with non Retina display, and charts are clear.
But - on a retina display iPad, while performance is also good, the charts are all blurry, and not really acceptable.
I'm really hoping there's a workaround that allows me to get clearly displayed charts and still retain acceptable performance on retina displays?
Thanks
Richard
Re: Mobile Performance
Hi Richard,
We can reproduce the problem in two different Android devices though.
We don't have any iPad 3 retina here. I've tried it in the simulator and I can't see the blurred effect in the chart in it.RichardS wrote:If I use Chart.Buffered := True, all the performance problems go away on the Mini with non Retina display, and charts are clear.
But - on a retina display iPad, while performance is also good, the charts are all blurry, and not really acceptable.
We can reproduce the problem in two different Android devices though.
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: Mobile Performance
I hadn't thought of the Simulator, but actually I can reproduce a bit of the problem there - it is actually worse on the device, but can you see the difference quite clearly in quality.
Re: Mobile Performance
Hello,
Right, switching to iPad Retina simulator I could also reproduce the problem.
We're investigating this further.
Right, switching to iPad Retina simulator I could also reproduce the problem.
We're investigating this further.
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: Mobile Performance
For now I think I have worked around the problem like this:
- Created a hidden form which has the chart(s) on it I want
- Added a method to this form which uses Chart.TeeCreateBitMap to return Bitmaps at both "normal" height and width and "2x" height and width
- Used a TImage component with TBitmaps for both 1x and 2x resolutions, and assigned the results of the function to them
So basically I create 2 copies of the chart at different sizes as bitmaps, and display the bitmaps rather than the Chart itself. The TImage component seems to correctly select and display the 1x or 2x resolution image depending on the device.
This solves any scrolling/performance issues - scrolling the images on THorzScrollBox is now very smooth. Creating the TBitmap is a bit slower than I'd like (about 0.25 - 0.30 of a second on an iOS device, as opposed to 0.05 on Windows) but I guess that is purely hardware related.
Would be nice if there was some way TChart could do this "out of the box", but hope this helps somebody in the meantime.
Richard
- Created a hidden form which has the chart(s) on it I want
- Added a method to this form which uses Chart.TeeCreateBitMap to return Bitmaps at both "normal" height and width and "2x" height and width
- Used a TImage component with TBitmaps for both 1x and 2x resolutions, and assigned the results of the function to them
So basically I create 2 copies of the chart at different sizes as bitmaps, and display the bitmaps rather than the Chart itself. The TImage component seems to correctly select and display the 1x or 2x resolution image depending on the device.
This solves any scrolling/performance issues - scrolling the images on THorzScrollBox is now very smooth. Creating the TBitmap is a bit slower than I'd like (about 0.25 - 0.30 of a second on an iOS device, as opposed to 0.05 on Windows) but I guess that is purely hardware related.
Would be nice if there was some way TChart could do this "out of the box", but hope this helps somebody in the meantime.
Richard