<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Profilers on Nikhil&#39;s blog</title>
    <link>https://master--suspicious-stonebraker-7d2d21.netlify.app/tags/profilers/</link>
    <description>Recent content in Profilers on Nikhil&#39;s blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-US</language>
    <lastBuildDate>Sat, 24 Nov 2018 14:05:00 -0700</lastBuildDate>
    <atom:link href="https://master--suspicious-stonebraker-7d2d21.netlify.app/tags/profilers/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Sampling Profiler Internals: Suspending Threads</title>
      <link>https://master--suspicious-stonebraker-7d2d21.netlify.app/post/2018/sampling-profiler-internals-suspending-threads/</link>
      <pubDate>Sat, 24 Nov 2018 14:05:00 -0700</pubDate>
      <guid>https://master--suspicious-stonebraker-7d2d21.netlify.app/post/2018/sampling-profiler-internals-suspending-threads/</guid>
      <description>This is part 2 of the Sampling Profilers Internals series.&#xA;Introduction Suspending threads Stack unwinding Symbolication Presenting profile output Extending the profiler to managed languages As described in the introduction, a sampling profiler captures the stack of each thread every few milliseconds. To do this, it is preferable to suspend the thread 1. We don&amp;rsquo;t want the stack changing under us as we are profiling. Even worse, a thread could just terminate while we were attempting to profile it and invalidate all the memory we want to read.</description>
    </item>
    <item>
      <title>Sampling Profiler Internals: Introduction</title>
      <link>https://master--suspicious-stonebraker-7d2d21.netlify.app/post/2018/sampling-profiler-internals-introduction/</link>
      <pubDate>Sat, 24 Nov 2018 14:00:00 -0700</pubDate>
      <guid>https://master--suspicious-stonebraker-7d2d21.netlify.app/post/2018/sampling-profiler-internals-introduction/</guid>
      <description>Sampling profilers are useful tools for performance analysis of programs. I&amp;rsquo;ve spent a lot of time over the past several months digging into various implementations of sampling profilers and reading a lot about symbolication, threads, stack unwinding and other gory operating system details. This series of posts attempts to summarize my understanding.&#xA;Introduction Suspending threads Stack unwinding Symbolication Presenting profile output Extending the profiler to managed languages Background High CPU usage is a problem that comes up often in widely used software.</description>
    </item>
  </channel>
</rss>
