RSS Feed
News
Mar
16
iOS Chart Performance: Metal vs. OpenGL Speed comparison
Posted by Andrew on 16 March 2019 09:00 AM


It’s been almost three years since we released SciChart iOS: Realtime Charts for the iOS Platform. Right from the start, our goal has been to create the worlds fastest iOS Charts, but also produce visually appealing, productive, easy to use and flexible / powerful iOS charting controls, capable of being used in demanding business apps.

Our first version of SciChart iOS beat the speed records of any previous known iOS Chart control and we have only worked to improve our chart performance since then. We realise though, that speed isn’t everything, and also have been focussing on flexibility so that we can provide a compelling offering vs. open source iOS Chart components.

However, if it’s iOS Chart Performance you are looking for, then you have come to the right place! With the recent release of SciChart iOS v2.5 with metal support, we have taken the opportunity to update present new performance results of our iOS Chart control: SciChart iOS, vs. a number of competing open source iOS charts and commercial charts, as well as demonstrate the performance differences in our iOS Charts between Metal & OpenGL rendering on a variety of devices.

Topics in this article include:

Test Setup

iOS Chart Frameworks Compared in this Article

In this article we compare the performance of the following chart controls:

  • Core-plot; an Open source iOS Chart based on Core-graphics
  • Charts; an Open Source iOS Chart based on Core-graphics
  • Shinobi: a commercial iOS Chart library made by Scott Logic Ltd which uses OpenGL
  • SciChart (with our OpenGL renderer plugin)
  • SciChart (with our new Metal renderer plugin)

Tests Carried out

A number of tests are carried out to really stress the chart controls, these are:

Test 1: Hundreds of Series Line Chart Test

iOS Charts Core Plot SciChart performance comparison NxM series testIn this test, tens or hundreds of series, with tens or hundreds of points are added to the chart, then the chart redraws (the same data) as fast as possible by just resizing the Y-Axis for 10 seconds per test.

Performance is measured as FPS (Frames per second) using the CADisplayLink , which fires once after each drawing pass completes.

 

Test 2: Big-Data Scatter Chart Test up to 100k points

iOS Charts Core Plot SciChart performance comparison scatter series testIn this test, thousands or hundreds of thousands of Scatter points (ellipses) are appended to a series, then the chart redraws. Immediately after, the point positions are updated in a Brownian motion fashion and the chart is drawn again.

Performance is measured as FPS (Frames per second) and recorded.

 

Test 3: Realtime Scrolling Chart Test up to 1 Million points

iOS Charts Core Plot SciChart performance comparison FIFO Streaming series testIn this test, hundreds of thousands or even up to one million points are appended to a line chart, but scrolled from right to left (as new points arrive, old are discarded). SciChart for iOS & Android has a built-in mode to handle this called Fifo data series which use a circular buffer. Other chart components you can simply remove a point for each point added.

 

 

Test 4: Realtime line drawing test up to 10k Points added per second

iOS Charts Core Plot SciChart performance comparison big-data append testPerformance is measured as FPS (Frames per second) and recorded. In this test we start off with a line chart with thousands or even tens of thousands of points. We then add hundreds or thousands of points per second to the chart, so that the series gets bigger very fast. The data is random-walk and the chart automatically zooms to fit when data is updated. This gives the appearance of a live streaming realtime chart.

Performance is measured as FPS (Frames per second) and recorded.

 

Test Hardware

For the Test Hardware, we’ve used three phones: an iPhone 5s, iPhone X, and iPhone XR. The results are interesting as they show the strengths and weaknesses of each phone when drawing realtime iOS Charts using both Metal and OpenGL.

Performance Test Results

Interpreting the Test Results

Below: All test result numbers are in FPS (Frames per second – Higher is Better), meaning, the average number of redraws per second during the test, as measured by CADisplayLink.

The Test Case Name column is understood as follows:

  • Append 1K+100 StrokeThickness = 1 means “Starting with 1,000 points on an iOS Line chart, append 100 new points in a loop with a stroke thickness of 1”
  • Append 100k + 10k Strokethickness = 3 means “Starting with 100k points on an iOS line chart, append 10k new points in a loop with a stroke thickness if 3”
  • FIFO 10k Stroke Thickness = 3 means “Load 10k points to an iOS Line Chart and scroll them to the left with a strokethickness of 3”
  • FIFO 1M Stroke Thickness = 1 means “Load 1 Million points to an iOS Line Chart and scroll them to the left with a stroke thickness of 1”
  • 100 x 100 Stroke Thickness = 3 means “Load 100 line chart series, to an iOS Chart, each with 100 points, with a stroke thickness of 3 and redraw the chart”
  • 500 x 500 Stroke Thickness = 1 means “Load 500 line chart series to an iOS Chart, each with 500 points, with a stroke thickness of 1 and redraw the chart”
  • Scatter 1000 means “Load 1,000 points to an iOS Scatter Chart and repeatedly draw the chart”
  • Scatter 100000 means “Load 100,000 points to an iOS Scatter Chart and repeatedly draw the chart”

The Results Columns (Core Plot, Charts, Shinobi, SciChart Metal, SciChart OpenGL) are understood as follows:

  • Numbers are in FPS (Frames per second), where higher is better. 30 FPS or above is smooth to the human eye.
  • Each iOS Chart has FPS reported for this test case.
  • SciChart iOS has FPS reported for both the OpenGL Renderer plugin and the new Metal Renderer plugin

Because many of the open source iOS charts we tested became unstable as dataset size increased, we skip running further tests once a chart has dropped below 5FPS. So a zero in a column means that test was skipped (the iOS Chart control was unable to render that data size).

Note that in the case where SciChart was able to run a test but other iOS Charts could not, the percentage gain was marked as INF (infinite).

The % Gain Columns are understood as follows:

  • SciChart % Gain: The Max FPS of SciChart (Metal or OpenGL) is compared to the Max FPS of open source or commercial charts and computed as a percentage.
    • e.g. 800% means SciChart was 800% faster than the fastest competing iOS Chart Control for this test case
    • whereas -5% means SciChart was 5% slower than the fastest competing iOS Chart Control for this test case.
  • Metal % Gain: The FPS of ScChart when Metal was enabled is compared to the FPS when OpenGL is enabled and computed as a percentage.
    • e.g. 99% means SciChart’s Metal renderer was 99% faster than OpenGL for this test case
    • whereas -15% means Metal was 15% slower than OpenGL for this test case.

 

Test Results iPhone X

SciChart iOS Performance Comparison vs. Open Source Charts with Metal/OpenGL on iPhoneX. SciChart iOS Performance Comparison vs. Open Source Charts with Metal/OpenGL on iPhoneX.

The iPhoneX shows strong performance results for SciChart, where our Metal rendering plugin is able to draw big data and real-time updates at smooth frame rates.

On an iPhone X, SciChart’s iOS Chart can draw:

  • A massive 100,000 scatter points at 60 FPS (nearest competitor can only draw 1,000 points at the same frame rate)
  • 200 series with 200 points on a single chart at 56 FPS (nearest competitor can only draw 50 series)
  • 100k points scrolling in the FIFO case at 58 FPS (nearest competitor
  • It can have 100k points on screen and append 1,000 new points at 54 FPS

SciChart iOS Chart Performance is 60FPS for 100k points, 200 series or 100,000 scatter points in real time on iPhone X SciChart iOS Chart Performance is 60FPS for 100k points, 200 series or 100,000 scatter points in real time on iPhone X

On an iPhone X, SciChart is considerably faster than competitors, with test cases up reporting up to 2,000% faster than the nearest competing iOS Chart component.

SciChart iOS Chart Performance gain is up to 2000% faster than competitors on an iPhone X SciChart iOS Chart Performance gain is up to 2000% faster than competitors on an iPhone X

Finally, SciChart’s Metal renderer plugin shows strong performance, with most cases comparable to SciChart’s OpenGL plugin. Some cases, a performance boost of over 100% is realised just by using the Metal renderer.

Test Results iPhone XS

SciChart iOS Performance Comparison vs. Open Source Charts with Metal/OpenGL on iPhoneXS. SciChart iOS Performance Comparison vs. Open Source Charts with Metal/OpenGL on iPhoneXS.

On the iPhone XS we have even stronger performance results. The iPhone XS is a really powerful device with a 6-core A12 Processor, vs a 6-Core A11 in the iPhone X. The iPhone XS also has a 4-core GPU vs. a 3-Core GPU in the iPhone X, and provides up to 50% faster graphics performance (source: Forbes – iPhone XS vs. iPhone X, What’s the Difference?).

This is reflected in the performance results. While some of the cases are comparable to the iPhone X, some are up to twice as fast. SciChart iOS is still able to draw hundreds of thousands of scatter points at 60 FPS, and now 500 series at 30 FPS, or a half a million points in a realtime scrolling chart at just under 30 FPS. Truly a big-data iOS Chart control. For the fastest test case SciChart iOS performs 3,800% faster than the nearest competitor.

Test Results iPhone 5s

SciChart iOS Performance Comparison vs. Open Source Charts with Metal/OpenGL on iPhone5S. SciChart iOS Performance Comparison vs. Open Source Charts with Metal/OpenGL on iPhone5S.

We’ve included the iPhone 5s as a testing device in our set of tests as well. The iPhone 5s is the oldest iOS Device which supports iOS 12 and Apple’s Metal graphics API. Because the processor is older and graphics processor less powerful, it isn’t as fast as the newer devices.

You can see a table of the Apple processor benchmarks over at browser.geekbench.com/ios-benchmarks.

The iPhone 5s has a processing power approximately 1/4 of the iPhone X and XS, so it is not a surprise that SciChart iOS is performing slower on these devices. However, it is still outperforming competing iOS Charts by a long way.

You will also note that Metal performance on the iPhone 5s is slower than OpenGL, in some cases up significantly slower. This is because the A7 processor in the iPhone 5s has less powerful GPU features than newer devices. It is therefore advisable to detect operating system and device before applying the Metal rendering plugin in SciChart iOS. You can find out how in our iOS Chart Documentation.

Conclusions

It’s hard to draw much conclusion from these test results other than SciChart’s iOS Chart Control is really, really fast!.

> SciChart iOS: Up to 3,800% faster than competing iOS Charts, able to draw millions of points in realtime

These kind of performance results may seem over the top however consider that mobile computing is really starting to grow as a platform not just to surf the web and use simple apps, but actually create real big-data utility applications for scientists, engineers, medical professionals and businessmen.

Datasets are only getting larger, and the performance demands of applications are growing. With SciChart’s iOS Charts you can add visually appealing, animated line, column, scatter, bubble charts to your iOS application, or, create new kinds of apps that enable you to visualise massive amounts of data. Never before has this second case been possible for developers of iOS Applications.

Verifying the Results

If you wish to verify the performance test results, we are happy to share a copy of our iOS Chart Performance Comparison app on request.

Why SciChart?

SciChart provides powerful, flexible, high-performance realtime iOS Charts, Android Charts and WPF Chart controls to thousands of users in 80 countries. Our customers have use SciChart to create completely novel iOS apps such as capturing and displaying large volumes of heart-rate data during physical training sessions, for realtime visualisation of cardiovascular data for medical diagnostics, visualising telemetry and more. Without SciChart’s High Performance iOS & Android charts, these kind of apps would simply not be possible.

Far from just a fast 2D line or scatter chart, our iOS, Android & Windows (WPF) Charts are powerful, flexible, fully-featured chart controls and provide a compelling alternative to open source and commercial chart libraries. You can find out more about SciChart in the articles Comparison of SciChart vs. Open Source Chart Controls, and Why SciChart, the Best WPF Charts.

For more information about how some of our customers have used SciChart iOS, please see our case studies. We have included some below, and the full set is available at www.scichart.com/case-studies-mobile. If you have any questions, or wish to get in touch to discuss what SciChart can do for you, then please contact us.

Big-Data iOS/Android Chart Case studies

Avicena Heart (iOS)

Avicena is a medical device company focused on providing critical information to patients and physicians through their mobile app. Bespoke proprietary sensors stream cardiovascular data directly to a mobile device via Bluetooth to aid in diagnosis. Avicena chose SciChart as a reliable iOS charting solution to display Realtime, High-Bandwidth Cardiovascular data in up to 90 series streamed from sensors whilst maintaining a smooth UI and allowing for bespoke customizations and annotations.

Read More

iHealth Technologies Ltd (iOS)

Ihealth needed to display 70,000 points of Realtime Cardiac data for their revolutionary health and fitness app.
Custom iOS Charts were integrated alongside their existing styling adding great features and maintaining a smooth UI.
Keen to know more? Click below and find out what SciChart did to get this project off the ground!

Read More

IMT AG (Android)

IMT AG’s custom hardware project, the Citrex H5 had a range of hardware and cost requirements. SciChart was able to work with these and get IMT’s Android powered Gas Flow Analyzer off the ground with custom features and a slick high-performance interface despite the limitations of low-cost embedded hardware.
Read on to learn more and have a look through our full case study.

Read More

The post iOS Chart Performance: Metal vs. OpenGL Speed comparison appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Mar
13
Comparison of SciChart vs. Open Source Chart controls
Posted by Andrew on 13 March 2019 09:00 AM

At SciChart we are big fans of open source! We use open source in some of our chart controls, such as SharpDX (a managed wrapper around DirectX), Rene Schulte’s brilliant WriteableBitmapEx (for line drawing in WPF), WordPress/PhP on the website and more. We’ve even written some open source components such as the popular, free WPF Transitionz library. So, we don’t want to disparage the hard work of any open source chart component developers.

However, we do often get asked the questions ‘is your software free?’ and ‘why should I buy SciChart vs. using a free open source chart component?’

In this article we compare our software vs. a few popular free WPF, iOS & Android chart libraries and present reasons & benefits when it may be better to choose SciChart over open source, free charts for your WPF, iOS, Android & Xamarin applications.

Reason #1: Enterprise Tech Support

This first reason almost goes without saying. One of the biggest value-adds of using a commercial WPF, iOS or Android chart control is the insurance of knowing you have Enterprise technical support. If charts are mission critical to your project, and resolving any issues, should they occur, is important to you, it’s a very strong reason to consider a commercial chart control such as SciChart.

The following table shows the reported open issues on four major open source chart projects: OxyPlot (WPF Charts), LiveCharts (WPF Charts), MPAndroidChart (Android Charts) and Charts (iOS). New questions are asked every day on the github repositories for these libraries, and many are unanswered.

Open source project Number of open issues
OxyPlot (WPF Charts) 404 open issues
LiveCharts (WPF Charts) 316 open issues
MPAndroidChart (Android Charts) 1345 open issues
Charts (iOS Charts) 374 open issues
SciChart (WPF, iOS, Android, Xamarin Charts) Over 7,500 support incidents resolved.

Table 1: Open issues on popular open source chart components

We’re not surprised! One twitter influencer described the flood of open source help requests as ‘the fire-hose of open source’: When your open source chart library becomes popular you will be flooded with requests from users asking for help, demanding bug fixes and features, and it can quickly become unsustainable to handle them. So, the open source developers (some of whom have done a great job writing software!) quite rightly stop answering. Even we find it hard work sometimes to answer as many support requests as we do: over 7,500 requests for help, technical support or forum questions to date, and its our job! I can’t imagine having to do this level of work in spare time.

Figure 1: Issues outstanding on the MPAndroidChart open source chart library

What this means for you is, if you use an open source chart control in your business-critical project and one day you need help, and stackoverflow or the community is unable to provide it, you will be stuck… This could cost your business time and money if your application development is delayed if your productivity is affected while trying to find a solution.

SciChart’s 5-star rated Enterprise tech support is an insurance policy against problems you might encounter during your project. Our tech support is not meant to be a replacement for google, or research, but if WPF, iOS, Android or Xamarin charts in your project are mission critical to your business, at some point you may encounter a problem or issue that needs our team to help you. This can save you time and money to get back to what you are supposed to do: developing your application.

Reason #2: Ease of Use & Productivity

Technical support isn’t the only reason to choose SciChart vs. an open source chart component. We think you’ll find that if an API or library is productive and easy to use, it can lead to bigger cost saving than those provided by tech support.

  • Consider how much is your time worth per hour or per day?
  • How much time might you save in a year of using SciChart vs. an open source chart?

Think about the time to get started, learn the API, to find information you need on the web. If you have a requirement that is not simple, you might need to do some research to find the answers. With SciChart, you won’t need to save much time for the license to pay for itself entirely.

Example:

  • Cost of developer time: $60 / hour ($480 per day)
  • Cost of SciChart License: approx ~$1100 for SciChart WPF 2D Professional
  • Only 2.3 developer days need to be saved in a year before SciChart pays for itself.

It’s quite reasonable to assume you might save an hour per week when using SciChart vs. an Open Source chart component. More if your project is chart heavy. An hour per week adds up to 48 working hours per year, or 5 days of developer time: much more than the cost of the license.

One of our customers left us a great review, which said this:

We wrestled with a few free chart alternatives for several weeks; but after trying SciChart, we realized that we'd ultimately save money and ship our software faster by investing in such an easy-to-use library

This is really an incredible review and we’re grateful, but did you notice that the author spent several weeks evaluating free alternatives to SciChart? Free software can come with a cost of your time, and although SciChart is a commercial control meaning initial cost to your team, the care and attention that has gone into the API, examples, documentation and online help resources such as tutorials and forums will lead to faster development of the application & cost savings in the long run.

Reason #3: Developer activity & Speed of Bug Fixes

This reason is closely linked to #1. We have noticed that the development activity of many of the popular open source chart controls has declined over time, however, the demand for features and improvements has increased with their popularity.

Github activity for OxyPlot, an open source WPF Chart control

Github Activity for MPAndroidChart, open source Android charts

Github activity for LiveCharts Open Source WPF Chart control

Github activity for Charts, an Open Source iOS Chart control

Above you can see the Github activity of the four main open source chart components.

Below you can see our github activity. In contrast to the open source projects listed above, our development activity has increased; actually in the past two years it has really heated up since every day at SciChart we get new feature requests and demand for more improvements, better performance, compatibility with a new framework etc…

Github activity for SciChart, our enterprise WPF, iOS & Android Chart control

Figure 2: Development Activity on the SciChart Github repository

SciChart started as a project in 2012 and seven years later, we now have 14 developers now working full time on our WPF, iOS & Android charts. I cannot tell you how surprised I am (probably more surprised than you!) that charts (just X,Y values … on a screen … ) would take decades of effort…

So what does this mean for you?

If a new .NET Framework is released (Windows), new version of XCode, iOS, or Swift, a new Android SDK or Xamarin SDK is released then both commercial and open source charts have to be updated to be compatible. Sometimes a new device comes along and an application doesn’t work. Sometimes a critical bug occurs since an operating system or framework update and the chart component has to be fixed.

There is a risk you take when using any free open source or commercial chart control that the developer ceases to update their software, however, with SciChart that risk is minimized since our developer activity and popularity has been increasing over time.

When bugs are reported in our WPF Charts, iOS & Android Charts or Xamarin Charts we will aim to fix the serious ones as fast as possible, because they directly affect our customers, and therefore us!

That’s why we are charge a fee for what we do – we love free software and we think the open source chart developers do a great job, but in order to provide excellent software to you that is always up to date, fixed fast when there’s a problem and incorporating the latest features that you ask for then we must charge. We aren’t perfect, but this is our job and our livelihood and we have a strong incentive to work hard for you so that your projects are a success, plus, a good reputation to maintain!

Reason #4: Depth of Features

At SciChart, we only focus on charts. As a result, we strive to create a depth of features beyond when open source chart components are able to achieve and even beyond what many commercial vendors do too!

Take a look at the features matrix below to see what features SciChart can bring which open source components do not.

Feature SciChart MPAndroidChart iOS-Charts OxyPlot LiveCharts
2D Plots  
 
 
 
 
3D Plots  
*




Active, searchable forums  




Animation of Data  



 
Annotations on Chart  


 

Custom Series  




Custom Zoom or Pan behaviours  




Export / Print  
 
 
 

Fully Documented  




Hardware Acceleration  



 
High Performance & Realtime  




Link Multiple Charts  




Legend Customization  




Logarithmic Axis  


 
 
Multiple X-Axis  



 
Multiple Y-Axis  



 
Per-point colouring  
 
 


Programmatically Change Viewport  
 
 
 
 
Technical Support  




Theme or template customization  


 
 
Tooltips  
 
 
 
 
Touch Interaction  
 
 
 
 
Zoom and Pan  
 
 
 
 

Table 2: Feature comparison of SciChart vs. popular Open Source Chart components such as OxyPlot (WPF), LiveCharts (WPF), MPAndroidChart (Android) and Charts (iOS). *3D Support coming soon to Mobile

Key:

  • Means the feature is supported by the open source chart
  • Means the feature is not supported by the open source chart
  • Means there is limited support (requires workaround, or limited compared to SciChart)

The open source charts are in many cases, good enough for simple applications. If you want to just add a few low point-count 2D charts to your application, they can do the job. However, it’s the depth of features where SciChart really shines.

More on this below …

Reason #5: Flexibility

Most open source or commercial chart controls for WPF, iOS, Android provide the following standard features:

  • Many chart types (e.g. Line Charts, Scatter charts, Column Charts, Pie Charts)
  • Axis types (e.g. Date Axis, Time Axis, Numeric Axis)
  • Basic customisation features (e.g. TextFormatting, Themeing)
  • Inspection support (e.g. Tooltips, Legends)
  • Built-in zooming and panning

It would be easy to compare two chart libraries and see that they all support the above features and conclude ‘They’re the same’. Far from it.

With SciChart, you will find our API allows for complex customization is possible on nearly everything, and if we can’t support something, we will give a workaround, or, accept a feature-request for future development.

Here’s a selection of some of the deep features that SciChart supports which allow greater flexibility when creating charting applications for business.

  1. Series Selection
  2. Data-point Selection
  3. Axis label programmatic string-formatting
  4. Overriding of Axis gridline, label frequency
  5. Custom UIElement or UIView annotations and markers
  6. Per point colouring
  7. Custom interaction behaviours such as custom zooming, panning
  8. Custom Series
  9. Vertical charts
  10. Vertically Stacked Axis
  11. Central Axis
  12. Programmatically change zoom or pan
  13. Undo Redo of zoom
  14. Add Trendlines, best-fit curves, moving averages and splines
  15. Scrollbars on X,Y axis with preview of the chart behind

Its really hard to get these hidden features which provide excellent flexibility of our chart controls into a short list! These are just some of the flexibility options that SciChart has that open source chart controls and even commercial chart vendors do not have. Deeper features and more flexibility means you can get more complex requirements done quickly, which adds up to big cost savings over time, and ROI for your team.

Watch the video below to learn about 15 hidden features in our WPF Chart component to find out more:

Reason #6: Chart Performance

There are plenty of reasons why to choose and consider SciChart even if your application only needs to show modest dataset sizes. However, some of our users have very demanding performance requirements, and SciChart is capable of drawing many millions of points, update charts in realtime and with a low memory and CPU footprint on all the platforms that we support (iOS, Android, Windows/WPF).

We have created the fastest iOS charts & Android charts in the world (by a long way!), and one of the fastest, high-performance charts for WPF and Windows applications. Our charts are based on a hardware-accelerated rendering engine using DirectX (Windows), OpenGL ES (Android) and Metal (iOS) so that you get the fastest charting possible in your applications.

What does this mean to you? It means that SciChart makes impossible projects, possible.

We compared the performance of SciChart vs. some well known open source chart components, and discovered that our iOS & Android charts performed an order of magnitude faster than open source libraries (See iOS Chart Benchmarks and Android Chart Benchmarks). This means more data can be shown in your apps and previously impossible app ideas can now be realised. Our WPF Charts are also similarly fast compared to open source WPF charts. We are also working continually to make better gains in this area of performance and ensure that our charts are smooth and realtime in your applications.

When to choose SciChart vs. Open Source?

So given all of the above, when should you choose SciChart vs. an Open Source Chart component? There are some good arguments above, but you will find some more in the article seven reasons not to use Open Source. Some which are cited include:

  1. When proprietary software is easier to use
  2. When proprietary software offers technical support
  3. When proprietary software works better with your hardware
  4. When you need a vendor to stick around

In the article Open Source: What they’re not telling you there is further discussion to decide when to choose open source vs. a proprietary vendor.

In conclusion: when the requirement complexity is large, or the application is business critical, when features or performance matters and you need a component which is actively developed, you should definitely consider choosing SciChart for the charts in your enterprise applications!

SciChart vs. Open Source ROI Calculations

We’ve created some simple ROI calculations below to help you get an idea of the return on investment when purchasing SciChart. Some assumptions are made and no calculator is perfect!

If you consider the number of developers on your team, and the developer rate, you can get an idea of cost for your team’s time.

Next, estimate the time saved per developer per month. For example, conservatively estimating 1-hour a week saved from productivity, you might arrive at a figure of 4-hours per month. The actual figure could be higher in applications which are charting-heavy.

Finally, estimate the number of support incidents per year. Support incidents which are serious are rare, perhaps you will only get one or two a year, but each one might block your team for a long time if not resolved. So for example, estimate 2 days per year, but 16 hours of time lost per incident.

The calculator will output the return on investment for your purchase.

These are the results:

Number of developers on team 5
Developer rate / hour $60.00
Time saved (general productivity) per dev per month 4 hours
Time saved (general productivity) entire team per year 240 hours
Cost saved getting started / finding information / Year $14,400.00
Number of critical support incidents / year 2
Time saved for each critical support incident 16 hours
Cost saved for critical support incidents $1,920.00
Number of minor support incidents / year 10
Time saved for each minor support incident 4 hours
Cost saved for minor support incidents $2,400.00
Single SciChart License Cost $1099
Multi-Purchase Discount 30.00%
Cost of 5x SciChart Licenses for your team -$3,846.50
Total productivity costs saved $18,720.00
ROI ($) $14,873.50
ROI (%) 387%

Table 3: Estimated cost savings for a 5-developer team using SciChart

Of course, cost savings depend on many factors and the above doesn’t include the time you will spend learning the SciChart API, however we believe it will be quicker to learn SciChart than an alternative charting API.

Download the ROI Calculator here as an Excel Spreadsheet if you want to play around with the numbers. We have included both single-developer licensing costs vs. ROI as well as site-license costs vs. ROI.

SciChart licensing costs decrease over time

Please note, SciChart is licensed as a perpetual license with royalty free redistribution rights (see Licensing FAQ) and a support and updates subscription. The subscription is not mandatory after 1-year – you can still use SciChart after the support subscription ends, but you won’t be ale to access technical support or updates / bug fixes to the chart (see Renewals FAQ).

Our costs decrease over time as a 2nd year renewal of a support subscription costs just 50% of the 1st year. Your ROI for year two may be even greater.

Finally, you can, if you want, purchase the source-code to SciChart. If you want to modify it, then you have one of the main benefits of open source: ability to inspect, modify and develop the source-code of the chart control.

Best regards,
Andrew
[SciChart Team]

About SciChart: High Performance Realtime Charts.

SciChart provides high performance realtime chart components on the WPF (Windows), iOS, Android and Xamarin platforms. It is our goal to create the best cross-platform WPF, iOS & Android 2D & 3D charts in the world, focusing on performance, developer productivity, ease of use, depth of features and enterprise-grade tech support.

If you have a question about what SciChart can offer you, or if you would like to get a quote, please contact us. Our friendly, helpful support team will be glad to help!

 

The post Comparison of SciChart vs. Open Source Chart controls appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Mar
12
SciChart iOS with Metal /Android / Xamarin v2.5 released!
Posted by Julia Skorobogata on 12 March 2019 03:07 PM

What’s New in SciChart iOS /Android /Xamarin v 2.5?

There is a large number of improvements and bug fixes made in SciChart iOS/ Android / Xamarin v2.5. It is recommended for all users of SciChart v2.2 to update to the latest version! Please see more information below.

New Features:
  • Metal Support for iOS Charts

SciChart iOS and Xamarin.iOS is now the first hardware-accelerated iOS Chart Control to support the Metal graphics API by Apple, which will replace OpenGL ES in future versions of iOS. By default, our charts render using OpenGL ES, but you can switch to Metal with the following line of code:

// in Swift:
surface.renderSurface = SCIMetalRenderSurface(frame: surface.bounds)

// in Objective-C:
self.surface.renderSurface = [[SCIMetalRenderSurface alloc] initWithFrame:self.surface.bounds];

//in Xamarin:
Surface.RenderSurface = new SCIMetalRenderSurface(Surface.Bounds);

Please note this code should be called after initialization of SCIChartSurface object, before creating any axis, series, or styles.

Also, it is advisable to detect if the current iOS version and the current device has the full support of all the Metal features used in SCIChart using the code below:

// in Swift
if SCIChartSurface.isMetalSupported {
   surface.renderSurface = SCIMetalRenderSurface(frame: surface.bounds)
}

// in Objective-C
if (SCIChartSurface.isMetalSupported) {
   self.surface.renderSurface = [[SCIMetalRenderSurface alloc] initWithFrame:self.surface.bounds];
}

//in Xamarin
if (SCIChartSurfaceView.IsMetalSupported) {
   Surface.RenderSurface = new SCIMetalRenderSurface(Surface.Bounds);
}

This will ensure compatibility on older phones. (Link to Documentation).

We would recommend testing on multiple devices before deploying any apps to the App Store with the new Metal render surface. The OpenGL surface is fundamentally the same and considered the best choice for production apps at this time. Finally, we would really appreciate your feedback on the new Metal renderer.

  • New iOS and Android Documentation

The documentation for iOS Charts and Android Charts now has a new stylish theme, so it is easier and more pleasant to read. We have also taken care of making it easier to find just what you need via Google using Title tags and structured data. It is responsive and works great on all devices including tablets and mobile. There have been many small corrections and improvements made to the documentation and there is more to come!

Bug Fixes for iOS:
  1. Updated: bindings of SCIMetalRenderSurface to have a proper constructor
  2. Fixed: append and FIFO test cases for SciChart
  3. Fixed: memory leak on OpenGLRenderSurface deallocation Made SCIChartSurfaceViewBase.renderSurfafe property strong to avoid warning
  4. Added: allowing to draw outside of the main scene/end scene sequence + create the regular polygon texture once they are required + comment on the pre-creation;
  5. Fixed yellow triangles in point markers example: new drawing command for raw triangles
  6. Fixed: errata in swift example for scatter series
  7. Fixed: global angle for AquireRegularPolygonSprite
  8. Fixed: brush initialization
  9. Fixed: styling/theming examples
  10. Fixed: Multi-stack chart: use a projection matrix that doesn’t clip in screen space; gradient texture areaways horizontal ( width x 1 ); gradient texture need clamp sampler; approximate the output to match OpenGL by modulating the alpha of the gradient colors.
  11. Fixed: columns don’t appear in swift examples due to long* conversion to SCIGenericType
  12. Fixed SWIFT: heatmap chart example
  13. Fixed for Metal: crash with logarithmic axis where there were no major ticks
  14. Fixed: heatmap red spots issue
  15. Fix for Metal: broken line colors ( fade should be on alpha )
  16. Fixed for Metal: gaps between lines, new metal shaders, also AA lines should only be fading with Alpha on its edges, this way we can evade the 1.5 hackexp fixes for lines in metal
  17. Fixed for Metal: spline line examples
  18. Fixed for Metal: setting wrong screen size to global shader content
  19. Fixed: the multi-surface example, by making sure the correct width and height are passed down
  20. Fixed for Metal: ellipses example crash
  21. Fixed: black screen while app in the background
  22. Added display link to metalRenderSurface to bring back animations
  23. Removed obsolete methods on renderSurface Metal
  24. Multi sampling 4x enabled and 2x multi sampling
  25. Fixed for Metal: drawing of grid-lines\bands with properly saving\restoring matrix state
  26. Fixed: SetDrawingArea command
  27. Fixed for Metal:  errata in SetClipRct and updated Translate code
  28. Fixed for Metal: scaling for lines
  29. Fixed: memory leak in HeatMap chart examples
  30. Fix for Metal: lines thickness to match with OpenGL
  31. Fixed: black bar at the bottom (iPhone X)
  32. Fixed for Metal: Colormap
  33. SCIOS-792: fixed SCICustomAnnotation can’t be selected; Also improved moving it and scaling using available anchor points
  34. SCIOS-791: fixed Pie\Donut series segmentSpacing is ignored
  35. Fixed for Metal: HeatMap Example
  36. Fixed for Metal: Using Point Marker example
  37. Updated forMetal:  Xamarin.iOS bindings to work with Metal integration
  38. Added: new example that shows how to leave rollover on-screen
  39. Fixed: incorrect type of RenderSurface interface
  40. Fixed: Custom Legend Placement
  41. Fixed:  updating renderableSeriesAreaBorder / renderableSeriesAreaFill styles on SCIChartSurface
  42. Fixed: incorrect Call of formatXCursorValue
  43. SCIOS-609: fixed making one stacked in the group invisible makes the whole group invisible
  44. SCIOS-712: fixed cursor modifier shouldn’t show labels on hidden axes
  45. SCIOS-711: fixed ZoomPanModifier shouldn’t trigger inertia if velocity is very low (very gentle swipe)
  46. Fixed and enabled displaying of ARC -related warnings
  47. Fixed: crash on “show source code” feature in example demo
  48. Fixed: Tooltip on RolloverModifier appear outside the Chart area
  49. Improved: SCIRolloverModifier layout to fit chart bounds whenever it’s possible
  50. Updated: pen style in Xamarin.iOS
  51. Added: missing ctor which isn’t inherited from protocol in Xamarin.iOS
  52. Updated: heatmap examples in Xamarin.iOS
Bug Fixes for Android: 
  1. SC_DROID-654: extended need to draw check in AxisTitleRendererComponent to cover the case when axis title is an empty string;
  2. SC_DROID-653: fixed incorrect values displayed by axis tooltips in CursorModifier when using custom layout axis layout such as vertically stacked YAxes;
  3. SC_DROID-652: added handling of the vertical chart for Horizontal/VerticalLineAnnotation;
  4. Fixed: incorrect work of AnnotationCreationModifier when the chart is vertical
  5. SC_DROID-649: replaced invalidateElement() on invalidateLayout() when modifying series collection because series affect layout of pie/donut chart
  6. SC_DROID-650: modified rendering of pie and donut charts – added code which splits arc into two parts to ensure that it will be rendered;
  7. Fixed missing jar name in path to support-annotations; updated to Android 27; updated instructions;
  8. Fixed incorrect parameter in scroll() implementation for axis
  9. SC_DROID-612: fixed incorrect hit test results if xAxis has flipped coordinates – added isCoordinatesSortedAscending() flag for render pass data which is used for findIndex() call with xCoordinates;
  10. Fixed: wrong ColumnPaletteProvider, when colors changed during scrolling of chart;
  11. SC_DROID-607: updated AxisTitleRendererComponent to correctly handle RTL title;
  12. SC_DROID-599: changed LazyGLTexture which should prevent possible NullPointerException in case of any race conditions
  13. SC_DROID-598: added notification about changes of axis layout when settings axis title orientation and placement;
  14. SC_DROID-501: refactored AxisTickLabelsRendererComponent to correctly render multiline tick labels;
  15. Fixed: issue with aapt2-proto library when building a project on new PC where there is no cached version of the library – reordered repositories which are used for downloading dependencies;
  16. Fixed Tooltip on RolloverModifier appear outside the Chart area
  17. SC_DROID-596: improved layout of rollover tooltip to prevent clipping of tooltip at the bottom if there is enough space to place it a bit higher;
  18. SC_DROID-596: refactored VerticalSliceBehaviorBase to allow to override layout of rollover tooltips by creating custom SliceLayout.

Where to get iOS / Android / Xamarin v2.5?

You can get the SciChart iOS/Android/ Xamarin SDK v2.5 from the Downloads page. Source code customers can also get the latest from our Github repository as well as from Cocoapods for iOS, and Maven for Android. We also keep on delivering continuously for bug fixes, features and minor updates to the following package sources.

In addition, our example code is published to Github and is available to clone or download.

Download SciChart iOS/Android / Xamarin v 2.5

Best regards,
SciChart Team

The post SciChart iOS with Metal /Android / Xamarin v2.5 released! appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Nov
22
SciChart iOS v3 will support Metal, 2D & 3D Charts, OSX
Posted by Andrew on 22 November 2018 11:30 AM

SciChart iOS currently uses an in-house rendering engine which relies on OpenGL ES for hardware acceleration. While OpenGL ES is currently supported by iOS 12 devices, Apple has announced that they are deprecating OpenGL across all operating systems in the future. Exactly when that will occur we don’t know, but for now OpenGL ES and SciChart is compatible with all Apple devices.

We have been asked a few times by customers, and potential customers whether we intend to support Metal, the new proprietary graphics API by Apple, and the answer is yes, SciChart iOS v3 will support Metal on iOS and OSX.

This work to support Metal has been in progress for a while and is almost complete.

Our in-house rendering engine which uses C++ on Windows, Android and iOS and provides an abstraction layer to multiple underlying graphics APIs including OpenGL, OpenGL ES, DirectX and now Metal. The fact that we use an abstraction layer for drawing 2D & 3D Charts means we can also support new rendering technologies such as Vulkan should they become the only option on Android devices.

Be looking out for announcements and news on our site in the coming months! We are really excited to bring our 3D Charts to iOS/Android/OSX platforms and to continue building our vision of cross-platform native charts for the financial, scientific & engineering industries!

Our implementation of Metal for drawing will be packaged and published with SciChart iOS/Android v3, which will include 2D & 3D charts and is due for release in Spring 2019. 

The post SciChart iOS v3 will support Metal, 2D & 3D Charts, OSX appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Oct
18
SciChart iOS /Android / Xamarin v2.2.1 released!
Posted by Julia Skorobogata on 18 October 2018 11:42 AM

We are really excited to announce, that SciChart iOS/ Android / Xamarin v2.2.1 is released! 

What’s New in SciChart iOS /Android /Xamarin v 2.2.1?

There is a large number of improvements and bug fixes made in SciChart iOS/ Android / Xamarin v2.2.1. We have made many improvements and bug fixes, major memory leaks have been fixed. It is recommended for all users of SciChart v2.1 to update to the latest version! Please see more information below:

Changes:
  • Made SCIChartSurfaceProtocol conform to SCIChartControllerProtocol
  • Logarithmic axis zoom extents is fixed by SCILogarithmicVisibleRangeAnimator
Bug Fixes:
  • SCIOS-626: Fixed HorizintalLineAnnotation and VerticallLineAnnotation are not clipped by axes and are drawn over them
  • SCIOS-642: Fixed issue with on resize of the SCIChartSurface, lay out the axis labels
  • SCIOS-637: refactored internal scroll and removed velocityValue from improper places, fixed crash caused by SCILogarithmicDoubleCoordinateCalculator not having implemented getVelocityValueFrom
  • SCIOS-672: Fixed chart sync crash (EOG) – caused by TooltipShowOnTouch
  • SCIOS-596: Fixed Error during rendering of the first point when ifDigitalLine = true
  • Fixed major memory leaks in SciRenderable series
  • SC_DROID-558: added check to prevent exception during generation of minor ticks if there are no major ticks
  • SCIOS-682: Fixed iOS annotations seem to update independently from the data series
  • SC_DROID-562: Fixed memory leak in SpritePointMarker when textures were constantly recreated and never properly disposed because of wrong texture hash
  • SC_DROID-564: Fixed incorrect drawing of axis tick label – because StaticLayout had not enough space to fit label in one string so some labels were drawn as two lines of text;
  • SC_DROID-566: Fixed some logcat errors when OpenGL code was called without OpenGL context
  • Fixed SCIOS-687 – surface.Annotations.Clear() doesn’t clear all annotation from surface.
  • SC_DROID-568: Fixed exception because of how onSurfaceCreated() is implemented in GlSurfaceView ; refactored OpenGL renderer to avoid exception because of missing native memory chunk and made it resizable; also moved OpenGL programs creation so they are created only once
  • Fixed SCICustomAnnotation position in chart wrong
  • Fixed SCIXAxisDragModifier stopped working
  • Fixed SCILegendModifier: SCIDefaultLegendItem cell ambiguous width
  • Fixed text annotation formatting
  • Fixed exception if enable debug prints for CubicSpline
Improvements:
  • SC_DROID-566: improving OpenGL start up time – changed GLProgram implementation and made it lazy so we don’t initialize all shaders at once when render surface created
  • SC_DROID-565: added additional render pass data locks to ensure that it won’t be changed from another thread when applying transformation
  • Added default style values for PieSegment; added some common methods for PieSegmentBuilder
  • SC_DROID-563: rewritten GLTextureView rendering from scratch – now it uses Handler + Choreographer to schedule redrawing of render surface when VSync occurs in Android
  • Made custom annotations to support AnchorPoint alignment
  • SC_DROID-578: added propagating of listeners to child series for StackedSeriesCollectionBase
  • SC_DROID-561: added synchronized wrapper for SimpleDateFormat to prevent exception when same instance is accessed from different threads, applied the same approach to prevent possible exceptions when using DecimalFormat

Where to get iOS / Android / Xamarin v2.2.1?

You can get the SciChart iOS/Android/ Xamarin SDK v2.2.1 from the Downloads page. Source code customers can also get the latest from our Github repository as well as from Cocoapods for iOS, and Maven for Android. We also keep on delivering continuously for bug fixes, features and minor updates to the following package sources.

In addition, our example code is published to Github and is available to clone or download.

Download SciChart iOS/Android / Xamarin v 2.2.1

The post SciChart iOS /Android / Xamarin v2.2.1 released! appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Jul
25
Coming Soon to SciChart Q3/Q4 2018
Posted by Julia Skorobogata on 25 July 2018 01:08 PM

We’ve been quietly working away on a few projects for the past few months and wanted to give you an update to show you where SciChart will be going in the near future.

What’s Coming Soon to SciChart WPF?

SciChart WPF remains our flagship product and drives a lot of development, alongside tech support & maintenance (we have answered 692 support tickets for SciChart WPF and released 166 Nightly builds in the past year alone). We are still developing this product adding new features as our userbase requests and also features that are in strong demand.

Some of these are nearly ready for release and are listed below.

WPF New Chart Type: Free Surface Mesh 3D

A new Free Surface Mesh 3D feature will be presented in the upcoming release which will be SciChart WPF v5.2 (Q3 2018).

Free Surface Mesh 3D is a set of 3D charts that plot a surface mesh in 3D space. This chart type allows plotting closed objects in 3D that are not restricted by data laying down in the XZ plane. The charts can render different types of data including ellipsoid, cylinder, polar and even custom free surface mesh data in 3D. Please see the preview of the examples below:

scichart-surface-mesh-3D-custom-free-surface-mesh-data

Free Surface Mesh 3D with custom data

scichart-surface-mesh-3D-cylinder-data

Free Surface Mesh 3D with cylinder data

scichart-surface-mesh-3D-polar-data

Free Surface Mesh 3D with polar data

scichart-surface-mesh-3D-ellipsoid-data

Free Surface Mesh 3D with ellipsoid data

WPF New Feature: WPF Polar chart 3D

One of the chart types listed above is a 3D Polar Chart type, which allows for a flat disk with optional hole in the center defined by an equation and 2D array of data, contours, and paletted similar to a heatmap or surface-mesh chart. This chart type can be used in 3D mode or when an orthogonal overhead camera is presented, as a 2D Chart.

All new 3D Chart types will be made available to all customers of SciChart WPF SDK Professional, SDK Enterprise and 3D Professional who are in support subscription, free of charge. 

WPF New Feature: Drawing tools and Technical Indicators for trading applications

SciChart is widely used in trading and financial applications by our customers. Since a number of customers approached us to ask for these tools to be built, we have decided to make a step forward with a set of drawing tools for different patterns in trading.

The next release is expecting to bring a number of new annotation types to be used in trading systems, including:

  • Elliott Wave pattern
  • XABCD (Gartley / Bat / Harmonic polygon shapes) drawing
  • Head and Shoulders Pattern
  • Andrew’s Pitch Fork
  • Fibonacci Retracement
  • Fibonacci Extension
  • Also, we will be adding free brush style drawing to mark up the chart.

All of the following can be created programmatically, on user click, edited & dragged about, styled and persisted.

Please see some examples below:

scichart-elliott-wave-pattern-trading-tool

Elliott Wave Pattern, Trading Tools

scichart-xabcd-pattern-trading-tool

XABCD Pattern, Trading Tools

scichart-head-and-shoulders-pattern-trading-tool

Head and Shoulders Pattern, Trading tools

scichart-pitch-fork-pattern-trading-tools

Pitch Fork Pattern, Trading Tools

scichart-fibonacci-retracement-trading-tool

Fibonacci Retracement Trading Tool

scichart-fibonacci-retracement-extension-trading-tool

Fibonacci Retracement Extension Trading Tool

scichart-free-brush-drawing-trading-tools

Free Brush Drawing, Trading Tools

All new drawing tools will be in the SciChart.DrawingTools.dll package and will be made available to all customers of SciChart WPF SDK Professional, SDK Enterprise and 2D Enterprise who are in support subscription, free of charge. These drawing tools will not be available to SciChart WPF 2D Professional customers. 

What’s next in SciChart iOS / Android / Xamarin?

SciChart iOS & Android has been moving along with some progress to support latest SDKs but behind the curtain we are working on our big vision of having 2D & 3D Charts available on all native platforms, including Windows, Mac OSX, iOS, Android and with Xamarin & Xamarin Forms support.

Our next big piece of work is to bring 3D Charts to iOS & Android devices, which we have been working on quietly for the past year 
						<br />
						<a class=Read more »





CONTACT US

Not sure where to start? Contact us, we are happy to help!


CONTACT US

SciChart Ltd, 16 Beaufort Court, Admirals Way, Docklands, London, E14 9XL. Email: Legal Company Number: 07430048, VAT Number: 101957725