{"id":236,"date":"2015-10-17T23:04:58","date_gmt":"2015-10-17T23:04:58","guid":{"rendered":"http:\/\/www.rebelbot.com\/blog\/?p=236"},"modified":"2015-12-04T21:35:50","modified_gmt":"2015-12-04T21:35:50","slug":"workshop-optimizing-code-for-memory-and-performance","status":"publish","type":"post","link":"http:\/\/www.rebelbot.com\/blog\/workshop-optimizing-code-for-memory-and-performance\/","title":{"rendered":"Workshop: Optimizing Code For Memory and Performance"},"content":{"rendered":"<p>This workshop I have created\u00a0goes\u00a0by a few different names:<\/p>\n<p>How to Squeeze a Processor for Memory and Performance<\/p>\n<p>or the longer name:<\/p>\n<p>Squeezing Blood From A Stone: Getting Back Memory and Performance<\/p>\n<p>Regardless of what name got you here, it will debut in less than a month at <a href=\"https:\/\/hackaday.io\/superconference\/\">Hack A Day&#8217;s Super Conference<\/a>\u00a0November 14th &amp; 15th.\u00a0<span style=\"text-decoration: underline;\"><strong>It will happen Sunday the 15th 12:15am.\u00a0<\/strong><\/span><\/p>\n<p>We&#8217;ll guide you though a series of labs to explain how to measure performance and memory, then the basics of improving them based on your goals.<\/p>\n<p>Since this is a hands on but very short workshop focusing on using the following free tools (<span style=\"color: #ff6600;\">Download and install it yourself BEFORE the workshop or you&#8217;ll be sad<\/span>) and cheap hardware:<\/p>\n<ul>\n<li>Windows-enabled computer (MacOS with bandcamp or other VM could probably work)<\/li>\n<li>Github <a href=\"https:\/\/github.com\/rebelbot\/OptimizerLesson\">repo<\/a> or the <a href=\"https:\/\/hackaday.io\/project\/8037-squeezing-blood-from-a-stone\">project on my HackADay profile.<\/a><\/li>\n<li><a href=\"https:\/\/www.keil.com\/demo\/eval\/arm.htm\">Keil MDK-Lite \u00a0v5.16a for ARM Cortex free version<\/a> (limited to 32kB)\n<ul>\n<li>Install the <a class=\"pack-name pack-expand\" title=\"STMicroelectronics STM32L4 Series Device Support, Drivers and Examples\" href=\"http:\/\/www.keil.com\/dd2\/pack\/#\">STMicroelectronics STM32L4 Series Device Support, Drivers and Examples<\/a> pack from <a href=\"http:\/\/www.keil.com\/dd2\/pack\/#\/eula-container\">here<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.hex-rays.com\/products\/ida\/support\/download_demo.shtml\">IDA demo<\/a> from Hex-rays<\/li>\n<li>STM32L476 Discovery Board (Provided by workshop or <a href=\"http:\/\/www.st.com\/web\/en\/catalog\/tools\/PF261635\">here<\/a>)<\/li>\n<li>(2 items here)<a href=\"http:\/\/www.st.com\/web\/en\/catalog\/tools\/PF260219\" target=\"_blank\">ST-LINK V2 SW<\/a> (util, driver, and <a href=\"http:\/\/www.st.com\/web\/en\/catalog\/tools\/PF260217\" target=\"_blank\">firmware update<\/a>)<\/li>\n<li>(Optional) Portable logic analyzer\/oscilloscope.<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" style=\"border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;\" src=\"\/\/www.slideshare.net\/slideshow\/embed_code\/key\/CZhi1igytTF6dH\" width=\"595\" height=\"485\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" allowfullscreen=\"allowfullscreen\"> <\/iframe><\/p>\n<div style=\"margin-bottom: 5px;\"><strong> <a title=\"Squeezing Blood From a Stone V1.2\" href=\"\/\/www.slideshare.net\/rebelbot\/squeezing-blood-from-a-stone-v12\" target=\"_blank\">Squeezing Blood From a Stone V1.2<\/a> <\/strong> from <strong><a href=\"\/\/www.slideshare.net\/rebelbot\" target=\"_blank\">Jen Costillo<\/a><\/strong><\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This workshop I have created\u00a0goes\u00a0by a few different names: How to Squeeze a Processor for Memory and Performance or the longer name: Squeezing Blood From A Stone: Getting Back Memory and Performance Regardless of what name got you here, it will debut in less than a month at Hack A Day&#8217;s Super Conference\u00a0November 14th &amp; &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.rebelbot.com\/blog\/workshop-optimizing-code-for-memory-and-performance\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Workshop: Optimizing Code For Memory and Performance&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":237,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[18,21,3,15,22],"tags":[],"class_list":["post-236","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-calendars","category-debugging","category-hardware","category-presentations","category-tools"],"_links":{"self":[{"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/posts\/236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/comments?post=236"}],"version-history":[{"count":10,"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/posts\/236\/revisions"}],"predecessor-version":[{"id":254,"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/posts\/236\/revisions\/254"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/media\/237"}],"wp:attachment":[{"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/media?parent=236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/categories?post=236"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.rebelbot.com\/blog\/wp-json\/wp\/v2\/tags?post=236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}