{"id":2984904,"date":"2026-10-15T09:00:19","date_gmt":"2026-10-15T16:00:19","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2984904"},"modified":"2026-10-15T11:21:33","modified_gmt":"2026-10-15T18:21:33","slug":"real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips","title":{"rendered":"Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips"},"author":372342,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[738191],"tags":[38851,30331],"industry":[],"product":[769142,776202,768902,769152,768912,36601],"class_list":["post-2984904","blog","type-blog","status-publish","format-standard","hentry","category-developers","tag-developers","tag-performance-benchmarks","product-sdk-net","product-sdk-flutter","product-sdk-kotlin","product-sdk-qt","product-sdk-swift","product-developers"],"acf":{"authors":[{"ID":406996,"user_firstname":"Minnakan","user_lastname":"Karatoor Udhaya Shankar","nickname":"Minnakan Seral Karatoor Udhaya Shankar","user_nicename":"mkaratoor","display_name":"Minnakan Seral","user_email":"mkaratoor@esri.com","user_url":"","user_registered":"2025-09-25 16:30:15","user_description":"Minnakan is a product engineer on the ArcGIS Maps SDK for Qt. He has worked across game engines, 3D mapping, and simulation, and loves building fast, reliable software for developers.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/HeadShot-plain-3-213x200.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":"","show_article_image":false,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner-card.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner.png","short_description":"Tips on improving performance and benchmark info for real-time graphics overlays","flexible_content":[{"acf_fc_layout":"content","content":"<p>Real-time situational awareness apps depend on a current view of moving assets and changing conditions. As positions, headings, and status updates arrive, users need to understand what is happening without losing spatial context while they pan, zoom, or move between 2D and 3D. A public safety dispatcher may follow responders approaching a changing hazard. A defense operator tracks aircraft, vessels, and ground units across a wider area. In either case, the map must absorb a continuous stream of updates while keeping symbols meaningful and interaction responsive.<\/p>\n<p>ArcGIS Maps SDKs for Native Apps support two approaches to displaying real-time moving data: graphics overlays, which are well suited to extremely dynamic scenarios with high-frequency updates, and Dynamic Entities, which are purpose-built for highly dynamic streaming feeds, previous observations, and track visualization. Both approaches support high-frequency updates, and the appropriate choice depends on the workflow. This article focuses on graphics overlays, and a future article will cover Dynamic Entities.<\/p>\n<p>To explore how graphics overlays perform under a sustained stream of moving data, we built a benchmark application and measured its update rate during active map interaction.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2984911,"id":2984911,"title":"bench-banner","filename":"bench-banner.png","filesize":2159806,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips\/bench-banner","alt":"Emergency response, air traffic management, military","author":"372342","description":"Uses of real-time data in action","caption":"","name":"bench-banner","status":"inherit","uploaded_to":2984904,"date":"2026-10-13 22:52:11","modified":"2026-10-13 22:53:38","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1920,"height":1080,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner.png","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner.png","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner.png","large-width":1920,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner-1536x864.png","1536x1536-width":1536,"1536x1536-height":864,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner.png","2048x2048-width":1920,"2048x2048-height":1080,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner-826x465.png","card_image-width":826,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner.png","wide_image-width":1920,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>The test<\/h2>\n<p>The benchmark application, built with ArcGIS Maps SDK for Qt, tests whether an app can keep rich, meaningful symbols on screen while updating them very fast. Its workload moves air, ground, sea, and subsurface graphics independently while the user pans and zooms.<\/p>\n<p>Each graphic uses a MIL-STD-2525C military symbol. A symbol may identify an aircraft as friendly, show its direction of travel, and carry status that affects a user\u2019s response. Anonymous points would be simpler to draw but would lose that information, so the benchmark keeps full symbology. The result is a varied operational picture rather than a field of identical markers. Each symbol conveys information about the object it represents.<\/p>\n<p>The symbols come from one shared dictionary renderer. A dictionary renderer connects each graphic\u2019s attributes to a standards-based symbol. ArcGIS Maps SDKs for Native Apps use <a href=\"https:\/\/esriurl.com\/MilSymbolStyles\">dictionary styles provided by Esri<\/a> that support the US (MIL-STD-2525) and NATO (APP-6) standards. Developers can also <a href=\"https:\/\/developers.arcgis.com\/qt\/styles-and-data-visualization\/display-symbols-with-a-dictionary-renderer\/\">create custom dictionary styles<\/a> that combine their own symbols and expected attributes.<\/p>\n<p>The graphics live in graphics overlays, which display content above a map or scene. Dynamic rendering keeps graphic representations on the GPU, allowing the SDK to update moving graphics without redrawing the underlying map data for every change.<\/p>\n<p>Live metrics tracked generated observations, applied graphic updates, and frame-related measures.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2984968,"id":2984968,"title":"bench","filename":"GIF2.gif","filesize":78749833,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF2.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips\/gif2-3","alt":"Symbols move as the user pans and zooms","author":"406996","description":"","caption":"A dense mix of moving air, ground, sea, and subsurface military symbols updates as the user pans and zooms.","name":"gif2-3","status":"inherit","uploaded_to":2984904,"date":"2026-10-14 20:41:33","modified":"2026-10-14 20:43:24","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1280,"height":720,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF2-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF2.gif","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF2.gif","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF2.gif","large-width":1280,"large-height":720,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF2.gif","1536x1536-width":1280,"1536x1536-height":720,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF2.gif","2048x2048-width":1280,"2048x2048-height":720,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF2-826x465.gif","card_image-width":826,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF2.gif","wide_image-width":1280,"wide_image-height":720}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>&nbsp;<\/p>\n<table style=\"font-weight: 400;\" data-tablestyle=\"MsoTableGrid\" data-tablelook=\"1184\">\n<tbody>\n<tr>\n<td data-celllook=\"0\"><b><span data-contrast=\"auto\">Component<\/span><\/b><span data-ccp-props=\"{&quot;335551550&quot;:6,&quot;335551620&quot;:6}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><b><span data-contrast=\"auto\">Configuration<\/span><\/b><span data-ccp-props=\"{&quot;335551550&quot;:6,&quot;335551620&quot;:6}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Processor<\/span><span data-ccp-props=\"{&quot;335551550&quot;:6,&quot;335551620&quot;:6}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Intel Core i7-14700; approximately 4.1 GHz observed during testing<\/span><span data-ccp-props=\"{&quot;335551550&quot;:6,&quot;335551620&quot;:6}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Memory and graphics<\/span><span data-ccp-props=\"{&quot;335551550&quot;:6,&quot;335551620&quot;:6}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">32 GB DDR5; NVIDIA T1000 8 GB<\/span><span data-ccp-props=\"{&quot;335551550&quot;:6,&quot;335551620&quot;:6}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Software<\/span><span data-ccp-props=\"{&quot;335551550&quot;:6,&quot;335551620&quot;:6}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Windows 11 Release build; Qt 6.10.0; ArcGIS Maps SDK for Qt 300.0<\/span><span data-ccp-props=\"{&quot;335551550&quot;:6,&quot;335551620&quot;:6}\">\u00a0<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"content","content":"<h2>The results<\/h2>\n<p><span data-contrast=\"auto\">On the Windows 11 test system described above, the application reached a peak rate of approximately 800,000 applied graphic updates per second across 10,000 moving graphics while maintaining a stable frame rate during pan and zoom. That\u2019s an average of 80 applied updates per graphic per second, equivalent to updating each graphic every 12.5 milliseconds. This peak focused on location updates; direction and other renderer-driving attributes remained unchanged. Changing those attributes adds work to the update path and may reduce the achievable update rate. <\/span><span data-ccp-props=\"{&quot;335551550&quot;:6,&quot;335551620&quot;:6}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Live metrics tracked generated observations, applied graphic updates, and frame-related measures. The benchmark brings together the SDK&#8217;s rendering capabilities and practical Qt techniques for keeping each update efficient. Results vary with hardware, view type, symbol complexity, graphic count, and update content.<\/span><span data-ccp-props=\"{&quot;335551550&quot;:6,&quot;335551620&quot;:6}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2984977,"id":2984977,"title":"bench2","filename":"GIF_Scene_1.gif","filesize":93509608,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF_Scene_1.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips\/gif_scene_1","alt":"Operational picture in a 3D scene","author":"406996","description":"","caption":"The same MIL-STD-2525C operational picture in a 3D scene, with air, ground, sea, and subsurface symbols.","name":"gif_scene_1","status":"inherit","uploaded_to":2984904,"date":"2026-10-14 21:59:40","modified":"2026-10-14 22:00:40","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":854,"height":480,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF_Scene_1-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF_Scene_1.gif","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF_Scene_1.gif","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF_Scene_1.gif","large-width":854,"large-height":480,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF_Scene_1.gif","1536x1536-width":854,"1536x1536-height":480,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF_Scene_1.gif","2048x2048-width":854,"2048x2048-height":480,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF_Scene_1-826x465.gif","card_image-width":826,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/GIF_Scene_1.gif","wide_image-width":854,"wide_image-height":480}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Tips, tricks, and best practices<\/h2>\n<p>Sustaining a high update rate across many graphics requires the application to limit the work in each update. For the ArcGIS Maps SDK for Qt benchmark, we designed the update path around the guidelines captured in <a href=\"https:\/\/developers.arcgis.com\/qt\/programming-patterns\/performance-considerations\/\">the ArcGIS Maps SDK for Qt performance guide.<\/a> The list below follows those guidelines and shows how we applied them in the benchmark. You can use it as a set of tips for improving performance in your own app.<\/p>\n<ol>\n<li><strong>Create each graphic once<\/strong> &#8211; The application updates a graphic&#8217;s geometry as it moves instead of rebuilding the display.<\/li>\n<li><strong>Share overlays and renderers<\/strong> &#8211; Compatible graphics share overlays and renderers, and initial graphics enter their collections in batches.<\/li>\n<li><strong>Use direct graphic lookup &#8211;<\/strong> A `QHash` connects each stable ID to its graphic, allowing incoming observations to reach the right object without scanning the overlay.<\/li>\n<li><strong>Match the view\u2019s spatial reference<\/strong> &#8211; The benchmark generates points in the view\u2019s spatial reference, avoiding reprojection on each location update.<\/li>\n<li><strong>Limit updated content and reuse capacity<\/strong> &#8211; Each benchmark observation contains only the location and attributes required for the current visualization. Geometry-only workloads skip dictionary attributes, and the generator reuses container capacity to reduce allocation pressure during sustained runs.<\/li>\n<li><strong>Move pure data preparation off the GUI thread<\/strong> &#8211; Qt&#8217;s worker-object pattern moves simulation and pure data preparation onto a dedicated `QThread`. Prepared observations arrive in controlled batches, and the application prevents a growing backlog when an incoming feed outruns the view.<\/li>\n<\/ol>\n<p><span class=\"TextRun SCXW223285323 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW223285323 BCX0\">These choices preserve more capacity for drawing the operational picture and responding to the person using it.<\/span><\/span><span class=\"EOP Selected SCXW223285323 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2>From moving graphics to operational applications<\/h2>\n<p>Rendering moving assets is one part of an operational application. Developers can combine graphics overlays with hosted and local content, <a href=\"https:\/\/developers.arcgis.com\/qt\/offline-maps-scenes-and-data\/\">support connected and disconnected workflows<\/a>, and present data in 2D maps and 3D scenes within the same mapping SDK. <a href=\"https:\/\/developers.arcgis.com\/qt\/device-location\/work-with-geotriggers\/\">Geotriggers<\/a> and <a href=\"https:\/\/developers.arcgis.com\/qt\/spatial-analysis\/\">spatial analysis<\/a> can help applications respond to location changes and turn incoming data into actionable information.<\/p>\n<p>ArcGIS Maps SDKs for Native Apps provide a foundation for responsive 2D and 3D applications across supported desktop and mobile platforms. Explore the <a href=\"https:\/\/github.com\/Esri\/arcgis-maps-sdk-qt-demos\/tree\/main\/PerformanceDemo_GraphicsOverlay\">performance demo<\/a> to see the benchmark in action, consult <a href=\"https:\/\/developers.arcgis.com\/qt\/programming-patterns\/performance-considerations\/\">Performance considerations<\/a> in the guide for ArcGIS Maps SDK for Qt to apply these techniques, and browse our <a href=\"https:\/\/github.com\/Esri\/arcgis-maps-sdk-samples-qt\">Qt key features<\/a> page and our <a href=\"https:\/\/github.com\/Esri\/arcgis-maps-sdk-samples-qt\">Qt samples<\/a> to explore what else you can build.<\/p>\n<p>Data sources used in this blog<\/p>\n<p>Data sources and credits for the benchmark application are listed in t<a href=\"https:\/\/github.com\/Esri\/arcgis-maps-sdk-qt-demos\/blob\/main\/PerformanceDemo_GraphicsOverlay\/README.md#3d-model-credits\">he ArcGIS Maps SDK for Qt performance demo README<\/a>.<\/p>\n<p>&nbsp;<\/p>\n"}]},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips<\/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.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-15T18:21:33+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips\"},\"author\":{\"name\":\"Mara Dolan\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5791f5a81b39ed41c76c2f7e9f7da6bd\"},\"headline\":\"Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips\",\"datePublished\":\"2026-10-15T16:00:19+00:00\",\"dateModified\":\"2026-10-15T18:21:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips\"},\"wordCount\":13,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"Developers\",\"Performance Benchmarks\"],\"articleSection\":[\"Developers\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips\",\"name\":\"Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2026-10-15T16:00:19+00:00\",\"dateModified\":\"2026-10-15T18:21:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5791f5a81b39ed41c76c2f7e9f7da6bd\",\"name\":\"Mara Dolan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/12\/myphoto-e1765182771432-213x200.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/12\/myphoto-e1765182771432-213x200.jpg\",\"caption\":\"Mara Dolan\"},\"description\":\"Mara is Esri's Native Maps SDKs Outreach Coordinator. With more than two decades of experience helping developers succeed with ArcGIS technology, her background spans technical communication, documentation strategy, developer outreach, and creating content that makes complex concepts easier to understand.\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/mdolan\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips","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.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips","og_locale":"en_US","og_type":"article","og_title":"Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2026-10-15T18:21:33+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips"},"author":{"name":"Mara Dolan","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5791f5a81b39ed41c76c2f7e9f7da6bd"},"headline":"Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips","datePublished":"2026-10-15T16:00:19+00:00","dateModified":"2026-10-15T18:21:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips"},"wordCount":13,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["Developers","Performance Benchmarks"],"articleSection":["Developers"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips","name":"Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2026-10-15T16:00:19+00:00","dateModified":"2026-10-15T18:21:33+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/real-time-graphics-overlays-in-arcgis-maps-sdks-for-native-apps-benchmark-and-tips#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Real-Time Graphics Overlays in ArcGIS Maps SDKs for Native Apps: Benchmark and Tips"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5791f5a81b39ed41c76c2f7e9f7da6bd","name":"Mara Dolan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/12\/myphoto-e1765182771432-213x200.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/12\/myphoto-e1765182771432-213x200.jpg","caption":"Mara Dolan"},"description":"Mara is Esri's Native Maps SDKs Outreach Coordinator. With more than two decades of experience helping developers succeed with ArcGIS technology, her background spans technical communication, documentation strategy, developer outreach, and creating content that makes complex concepts easier to understand.","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/mdolan"}]}},"text_date":"October 15, 2026","author_name":"Minnakan Seral","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/mkaratoor","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/10\/bench-banner.png","primary_product":"Developers","tag_data":[{"term_id":38851,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":38851,"taxonomy":"post_tag","description":"","parent":0,"count":81,"filter":"raw"},{"term_id":30331,"name":"Performance Benchmarks","slug":"performance-benchmarks","term_group":0,"term_taxonomy_id":30331,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":466,"filter":"raw"}],"product_data":[{"term_id":769142,"name":"ArcGIS Maps SDK for .NET","slug":"sdk-net","term_group":0,"term_taxonomy_id":769142,"taxonomy":"product","description":"","parent":36601,"count":48,"filter":"raw"},{"term_id":776202,"name":"ArcGIS Maps SDK for Flutter","slug":"sdk-flutter","term_group":0,"term_taxonomy_id":776202,"taxonomy":"product","description":"","parent":36601,"count":28,"filter":"raw"},{"term_id":768902,"name":"ArcGIS Maps SDK for Kotlin","slug":"sdk-kotlin","term_group":0,"term_taxonomy_id":768902,"taxonomy":"product","description":"","parent":36601,"count":43,"filter":"raw"},{"term_id":769152,"name":"ArcGIS Maps SDK for Qt","slug":"sdk-qt","term_group":0,"term_taxonomy_id":769152,"taxonomy":"product","description":"","parent":36601,"count":47,"filter":"raw"},{"term_id":768912,"name":"ArcGIS Maps SDK for Swift","slug":"sdk-swift","term_group":0,"term_taxonomy_id":768912,"taxonomy":"product","description":"","parent":36601,"count":42,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":793,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=developers","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2984904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/372342"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2984904"}],"version-history":[{"count":11,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2984904\/revisions"}],"predecessor-version":[{"id":2984978,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2984904\/revisions\/2984978"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2984904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2984904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2984904"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2984904"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2984904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}