{"id":1838,"date":"2016-05-22T15:11:50","date_gmt":"2016-05-22T14:11:50","guid":{"rendered":"https:\/\/www.scichart.com\/2016\/05\/22\/extreme-performance-optimization-survey\/"},"modified":"2022-12-09T13:09:19","modified_gmt":"2022-12-09T13:09:19","slug":"extreme-performance-optimization-survey","status":"publish","type":"post","link":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/","title":{"rendered":"Extreme Performance Optimization Survey"},"content":{"rendered":"

From time to time at SciChart HQ, we get asked for even more performance<\/em>. Yes! I know it’s crazy,\u00a0SciChart can easily handle 10 million points<\/a>\u00a0in real-time (or even up to 100 Million points at 2-4 FPS) in a line-chart, but sometimes we get asked ‘well, can you do more?’<\/p>\n

So … wait … you want more<\/span>\u00a0than 10s of millions of points? … Ok then! ..\u00a0<\/em><\/p>\n

So we had a go to try to optimize certain critical paths of SciChart’s WPF Chart. Right now, we’re already using unsafe code<\/a> (pointer arithmetic in .NET) for our performance critical algorithms, plus DirectX for drawing<\/a>, however there is the potential to move certain critical routines over to C++ with SSE (Streaming SIMD Extensions<\/a>), which allow us\u00a0to vectorize and hence accelerate certain numerical methods.<\/p>\n

\"Simd-Performance-Wpf-Chart-Prototype\"<\/a>
SciChart WPF Charts SIMD Prototype<\/strong>. 5x performance improvement for some chart types. More performance is possible if we do a whole program optimization.<\/figcaption><\/figure>\n

Our prototype was pretty good! In just a few days, we\u00a0managed to increase the overall performance of Resampling algorithms (used for lossless timeseries reduction<\/a>) by 3-3.5x using C++\/SSE*. That means a time-series chart which renders comfortably with 10M points at 30FPS can now render at the same framerate with 40M points. Or a chart that can render (albeit slowly) with 100M points can now handle 400M points.<\/p>\n

But resampling doesn’t improve everything. In fact, from our own internal tests and extensive experience building High Performance Chart controls we know that Measuring and Improving Charting Performance is extremely complex<\/a> and with many different pathways, we have to\u00a0change many parts of the code to\u00a0provide an optimum overall solution to deliver super High Performance WPF Charts<\/a>.<\/p>\n

For instance, we can move our rendering code to C++. Currently all our rendering is done in C# using interfaces and we transform points one at a time from data to pixel coordinates and vertices! The whole thing could be improved – a lot – if we moved some parts of the code over to C++ and started working in batches.<\/p>\n

So, before we embark on this road of painstaking\u00a0optimization, we’d like to know from you, our\u00a0user base, how important is it to you? We have a simple Yes or No question “Should we optimize for even more performance?”.<\/em><\/strong><\/p>\n

*\u00a0This optimization introduces a dependency on the Visual C++ Runtime, which must be installed on end-user PCs (pretty easy, but you should be aware of it).<\/em><\/p>\n

Survey<\/h2>\n

Please find the survey below. If you’d like to comment<\/strong>, please do so at the footer of this article.<\/em><\/p><\/blockquote>\n

\/\/ Create your own user feedback survey <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

From time to time at SciChart HQ, we get asked for even more performance. Yes! I know it’s crazy,\u00a0SciChart can […]<\/p>\n","protected":false},"author":37,"featured_media":2466,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[208],"tags":[],"acf":[],"yoast_head":"\nExtreme Performance Optimization Survey - SciChart<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Extreme Performance Optimization Survey - SciChart\" \/>\n<meta property=\"og:description\" content=\"From time to time at SciChart HQ, we get asked for even more performance. Yes! I know it’s crazy,\u00a0SciChart can […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/\" \/>\n<meta property=\"og:site_name\" content=\"SciChart\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/scichart\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-22T14:11:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-09T13:09:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.scichart.com\/wp-content\/uploads\/2016\/01\/2D-18.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"618\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andrew Burnett-Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@drandrewbt\" \/>\n<meta name=\"twitter:site\" content=\"@scichart\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrew Burnett-Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/\"},\"author\":{\"name\":\"Andrew Burnett-Thompson\",\"@id\":\"https:\/\/www.scichart.com\/#\/schema\/person\/903b030934442297fd094f66159ea0d2\"},\"headline\":\"Extreme Performance Optimization Survey\",\"datePublished\":\"2016-05-22T14:11:50+00:00\",\"dateModified\":\"2022-12-09T13:09:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/\"},\"wordCount\":443,\"publisher\":{\"@id\":\"https:\/\/www.scichart.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.scichart.com\/wp-content\/uploads\/2016\/01\/2D-18.png\",\"articleSection\":[\"Performance\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/\",\"url\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/\",\"name\":\"Extreme Performance Optimization Survey - SciChart\",\"isPartOf\":{\"@id\":\"https:\/\/www.scichart.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.scichart.com\/wp-content\/uploads\/2016\/01\/2D-18.png\",\"datePublished\":\"2016-05-22T14:11:50+00:00\",\"dateModified\":\"2022-12-09T13:09:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#primaryimage\",\"url\":\"https:\/\/www.scichart.com\/wp-content\/uploads\/2016\/01\/2D-18.png\",\"contentUrl\":\"https:\/\/www.scichart.com\/wp-content\/uploads\/2016\/01\/2D-18.png\",\"width\":1000,\"height\":618},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.scichart.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extreme Performance Optimization Survey\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.scichart.com\/#website\",\"url\":\"https:\/\/www.scichart.com\/\",\"name\":\"SciChart\",\"description\":\"WPF Charts, iOS Charts, Android Charts, JavaScript Chart\",\"publisher\":{\"@id\":\"https:\/\/www.scichart.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.scichart.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.scichart.com\/#organization\",\"name\":\"SciChart\",\"url\":\"https:\/\/www.scichart.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.scichart.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.scichart.com\/wp-content\/uploads\/2022\/11\/scichart-logo-1.png\",\"contentUrl\":\"https:\/\/www.scichart.com\/wp-content\/uploads\/2022\/11\/scichart-logo-1.png\",\"width\":312,\"height\":69,\"caption\":\"SciChart\"},\"image\":{\"@id\":\"https:\/\/www.scichart.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/scichart\",\"https:\/\/x.com\/scichart\",\"https:\/\/www.youtube.com\/scichart\",\"https:\/\/www.linkedin.com\/company\/scichart\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.scichart.com\/#\/schema\/person\/903b030934442297fd094f66159ea0d2\",\"name\":\"Andrew Burnett-Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.scichart.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b376d1a4c69e640acb874ff01952a48e?s=96&d=https%3A%2F%2Fwww.scichart.com%2Fwp-content%2Fuploads%2F2022%2F12%2Fdefault-avatar.jpg&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b376d1a4c69e640acb874ff01952a48e?s=96&d=https%3A%2F%2Fwww.scichart.com%2Fwp-content%2Fuploads%2F2022%2F12%2Fdefault-avatar.jpg&r=g\",\"caption\":\"Andrew Burnett-Thompson\"},\"description\":\"CEO \/ Founder of SciChart. Masters (MEng) and PhD in Electronics & Signal Processing. Follow me on LinkedIn for more SciChart content, or twitter at @drandrewbt.\",\"sameAs\":[\"https:\/\/www.scichart.com\",\"https:\/\/www.linkedin.com\/in\/dr-andrew-burnett-thompson\/\",\"https:\/\/x.com\/drandrewbt\"],\"url\":\"https:\/\/www.scichart.com\/author\/andrew\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Extreme Performance Optimization Survey - SciChart","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/","og_locale":"en_GB","og_type":"article","og_title":"Extreme Performance Optimization Survey - SciChart","og_description":"From time to time at SciChart HQ, we get asked for even more performance. Yes! I know it’s crazy,\u00a0SciChart can […]","og_url":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/","og_site_name":"SciChart","article_publisher":"https:\/\/www.facebook.com\/scichart","article_published_time":"2016-05-22T14:11:50+00:00","article_modified_time":"2022-12-09T13:09:19+00:00","og_image":[{"width":1000,"height":618,"url":"https:\/\/www.scichart.com\/wp-content\/uploads\/2016\/01\/2D-18.png","type":"image\/png"}],"author":"Andrew Burnett-Thompson","twitter_card":"summary_large_image","twitter_creator":"@drandrewbt","twitter_site":"@scichart","twitter_misc":{"Written by":"Andrew Burnett-Thompson","Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#article","isPartOf":{"@id":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/"},"author":{"name":"Andrew Burnett-Thompson","@id":"https:\/\/www.scichart.com\/#\/schema\/person\/903b030934442297fd094f66159ea0d2"},"headline":"Extreme Performance Optimization Survey","datePublished":"2016-05-22T14:11:50+00:00","dateModified":"2022-12-09T13:09:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/"},"wordCount":443,"publisher":{"@id":"https:\/\/www.scichart.com\/#organization"},"image":{"@id":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#primaryimage"},"thumbnailUrl":"https:\/\/www.scichart.com\/wp-content\/uploads\/2016\/01\/2D-18.png","articleSection":["Performance"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/","url":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/","name":"Extreme Performance Optimization Survey - SciChart","isPartOf":{"@id":"https:\/\/www.scichart.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#primaryimage"},"image":{"@id":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#primaryimage"},"thumbnailUrl":"https:\/\/www.scichart.com\/wp-content\/uploads\/2016\/01\/2D-18.png","datePublished":"2016-05-22T14:11:50+00:00","dateModified":"2022-12-09T13:09:19+00:00","breadcrumb":{"@id":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#primaryimage","url":"https:\/\/www.scichart.com\/wp-content\/uploads\/2016\/01\/2D-18.png","contentUrl":"https:\/\/www.scichart.com\/wp-content\/uploads\/2016\/01\/2D-18.png","width":1000,"height":618},{"@type":"BreadcrumbList","@id":"https:\/\/www.scichart.com\/extreme-performance-optimization-survey\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.scichart.com\/"},{"@type":"ListItem","position":2,"name":"Extreme Performance Optimization Survey"}]},{"@type":"WebSite","@id":"https:\/\/www.scichart.com\/#website","url":"https:\/\/www.scichart.com\/","name":"SciChart","description":"WPF Charts, iOS Charts, Android Charts, JavaScript Chart","publisher":{"@id":"https:\/\/www.scichart.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.scichart.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.scichart.com\/#organization","name":"SciChart","url":"https:\/\/www.scichart.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.scichart.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.scichart.com\/wp-content\/uploads\/2022\/11\/scichart-logo-1.png","contentUrl":"https:\/\/www.scichart.com\/wp-content\/uploads\/2022\/11\/scichart-logo-1.png","width":312,"height":69,"caption":"SciChart"},"image":{"@id":"https:\/\/www.scichart.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/scichart","https:\/\/x.com\/scichart","https:\/\/www.youtube.com\/scichart","https:\/\/www.linkedin.com\/company\/scichart"]},{"@type":"Person","@id":"https:\/\/www.scichart.com\/#\/schema\/person\/903b030934442297fd094f66159ea0d2","name":"Andrew Burnett-Thompson","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.scichart.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b376d1a4c69e640acb874ff01952a48e?s=96&d=https%3A%2F%2Fwww.scichart.com%2Fwp-content%2Fuploads%2F2022%2F12%2Fdefault-avatar.jpg&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b376d1a4c69e640acb874ff01952a48e?s=96&d=https%3A%2F%2Fwww.scichart.com%2Fwp-content%2Fuploads%2F2022%2F12%2Fdefault-avatar.jpg&r=g","caption":"Andrew Burnett-Thompson"},"description":"CEO \/ Founder of SciChart. Masters (MEng) and PhD in Electronics & Signal Processing. Follow me on LinkedIn for more SciChart content, or twitter at @drandrewbt.","sameAs":["https:\/\/www.scichart.com","https:\/\/www.linkedin.com\/in\/dr-andrew-burnett-thompson\/","https:\/\/x.com\/drandrewbt"],"url":"https:\/\/www.scichart.com\/author\/andrew\/"}]}},"_links":{"self":[{"href":"https:\/\/www.scichart.com\/wp-json\/wp\/v2\/posts\/1838"}],"collection":[{"href":"https:\/\/www.scichart.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scichart.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scichart.com\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scichart.com\/wp-json\/wp\/v2\/comments?post=1838"}],"version-history":[{"count":0,"href":"https:\/\/www.scichart.com\/wp-json\/wp\/v2\/posts\/1838\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.scichart.com\/wp-json\/wp\/v2\/media\/2466"}],"wp:attachment":[{"href":"https:\/\/www.scichart.com\/wp-json\/wp\/v2\/media?parent=1838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scichart.com\/wp-json\/wp\/v2\/categories?post=1838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scichart.com\/wp-json\/wp\/v2\/tags?post=1838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}