<listitem>
<para> Run your program with one of the profiling options, eg.
<literal>+RTS -p -RTS</literal>. This generates a file of
- profiling information.</para>
+ profiling information. Note that multi-processor execution
+ (e.g. <literal>+RTS -N2</literal>) is not supported while
+ profiling.</para>
<indexterm><primary><option>-p</option></primary><secondary>RTS
option</secondary></indexterm>
</listitem>
far to the right as possible when parsing. (SCC stands for "Set
Cost Centre").</para>
+ <para>Here is an example of a program with a couple of SCCs:</para>
+
+<programlisting>
+main :: IO ()
+main = do let xs = {-# SCC "X" #-} [1..1000000]
+ let ys = {-# SCC "Y" #-} [1..2000000]
+ print $ last xs
+ print $ last $ init xs
+ print $ last ys
+ print $ last $ init ys
+</programlisting>
+
+ <para>which gives this heap profile when run:</para>
+
+ <imagedata fileref="prof_scc"/>
+
</sect2>
<sect2 id="prof-rules">