{"id":796,"date":"2010-03-31T09:12:41","date_gmt":"2010-03-31T03:42:41","guid":{"rendered":"http:\/\/www.prasadgupte.com\/go\/?p=796"},"modified":"2011-03-22T11:58:34","modified_gmt":"2011-03-22T06:28:34","slug":"code-profiling-optimization","status":"publish","type":"post","link":"https:\/\/www.prasadgupte.com\/blog\/code-profiling-optimization\/","title":{"rendered":"Jargon: Code Profiling"},"content":{"rendered":"<p style=\"text-align: justify;\">Code profiling is a form of dynamic program (code) analysis to investigate the program&#8217;s behavior during execution. It is usually done to determine sections of code that can be optimized &#8211; to increase overall speed &amp; reduce resource requirements. Code profiler can come in several varieties &#8211; from those that measure the frequency &amp; duration of function calls to others that track memory usage. An emulator for micro-processor code (that simulates the processor&#8217;s instruction set) is also a type of profiler that measures behavior for the entire execution cycle &#8211; invocation to termination.<\/p>\n<p style=\"text-align: justify;\">I first heard of code profiling in the context of reverse engineering software architectures. Often it may so happen that applications with very little documentation are to be enhanced or re-engineered. One way to understand is by analyzing code, which can be a tedious process. Such static program analysis may yield incomplete understanding as the polymorphic calls can&#8217;t be determined until run-time. A code profiler determines polymorphic function calls and identifies overloads used during execution which helps establish relationships between classes &amp; components that can be used to reveal the underlying software architecture, if not for a specific pattern.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Code profiling is a form of dynamic program (code) analysis to investigate the program&#8217;s behavior during execution. It is usually done to determine sections of code that can be optimized &#8211; to increase overall speed &amp; reduce resource requirements. Code profiler can come in several varieties &#8211; from those that measure the frequency &amp; duration &hellip; <a href=\"https:\/\/www.prasadgupte.com\/blog\/code-profiling-optimization\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Jargon: Code Profiling<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[728],"tags":[401,397,398,582,400,399],"class_list":["post-796","post","type-post","status-publish","format-standard","hentry","category-code","tag-code-optimization","tag-code-profiling","tag-design-pattern","tag-linkedin","tag-polymorphism","tag-software-architecture"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/posts\/796","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/comments?post=796"}],"version-history":[{"count":0,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/posts\/796\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/media?parent=796"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/categories?post=796"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/tags?post=796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}