StatProfilerHTML.jl icon indicating copy to clipboard operation
StatProfilerHTML.jl copied to clipboard

When using Julia with a system image @profilehtml produces a 1GB html file

Open ikirill opened this issue 4 years ago • 1 comments

I have a project with quite a few large dependencies, and I use PackageCompiler to produce a julia system image to speed up loading times. In this project when I run @profilehtml, one of the html files is called

statprof/julia_sys.so-L2hvbWUva2lyaWxsL1NhbmRib3hlcy9TcG9ydHNNb2RlbGxpbmcvanVsaWFfc3lzLnNv.html

and it is a 1GB (!) large html file:

% du -sh statprof/julia_sys.so-L2hvbWUva2lyaWxsL1NhbmRib3hlcy9TcG9ydHNNb2RlbGxpbmcvanVsaWFfc3lzLnNv.html
1.1G    statprof/julia_sys.so-L2hvbWUva2lyaWxsL1NhbmRib3hlcy9TcG9ydHNNb2RlbGxpbmcvanVsaWFfc3lzLnNv.html

I think the issue is that it thinks the shared library (~300MB) is in fact source code and tries to include it in html? This is pretty funny.

I can't open it in a browser and the file begins like this (using less):

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'></meta>
    <link rel='stylesheet' type='text/css' href='statprofiler.css'></link>
    <title>StatProfilerHTML - /home/kirill/Sandboxes/Project/julia_sys.so</title>
  </head>
  <body>
    <div class='report-header'>
      <div class='backlink'>
        <a href='index.html'>Report index</a>
      </div>
      <div class='report-title'>
        StatProfilerHTML.jl report
      </div>
      <div class='generated-on'>
        Generated on Tue, 02 Feb 2021 20:46:33
      </div>
    </div>
    <table>
      <caption>File source code</caption>
      <thead>
        <tr>
          <th>Line</th>
          <th>Exclusive</th>
          <th>Inclusive</th>
          <th>Code</th>
        </tr>
      </thead>
      <tbody>
        <tr id='L1'>
          <td class='lineno'>1</td>
          <td class='tracecount excl'></td>
          <td class='tracecount incl'></td>
          <td>
            
            
            <span class='code'>^?ELF^B^A^A^@^@^@^@^@^@^@^@^@^C^@&gt;^@^A^@^@^@<80>T^@^@^@^@^@^@@^@^@^@^@^@^@^@^PR<9A>^W^@^@^@^@^@^@^@^@@^@8^@   ^@@^@&#37;^@&#36;^@^A^@^@^@^D^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<80>N^@^@^@^@^@^@<80>N^@^@^@^@^@^@^@^P^@^@^@^@^@^@^A^@^@^@^E^@^@^@^@P^@^@^@^@^@^@^@P^@^@^@^@^@^@^@P^@^@^@^@^@^@<FD><91><B0>^@^@^@^@^@<FD><91><B0>^@^@^@
^@^@^@^P^@^@^@^@^@^@^A^@^@^@^D^@^@^@^@<F0><B0>^@^@^@^@^@^@<F0><B0>^@^@^@^@^@^@<F0><B0>^@^@^@^@^@<B8><C4>^U^@^@^@^@^@<B8><C4>^U^@^@^@^@^@^@^P^@^@^@^@^@^@^A^@^@^@^F^@^@^@^P<BF><C6>^@^@^@^@^@^P
<CF><C6>^@^@^@^@^@^P<CF><C6>^@^@^@^@^@<F6><BD>^X^U^@^@^@^@<B8>-^\^U^@^@^@^@^@^P^@^@^@^@^@^@^B^@^@^@^F^@^@^@<D8>^M<CA>^@^@^@^@^@<D8>^]<CA>^@^@^@^@^@<D8>^]<CA>^@^@^@^@^@<D0>^A^@^@^@^@^@^@<D0>
^A^@^@^@^@^@^@^H^@^@^@^@^@^@^@^D^@^@^@^D^@^@^@8^B^@^@^@^@^@^@8^B^@^@^@^@^@^@8^B^@^@^@^@^@^@&#36;^@^@^@^@^@^@^@&#36;^@^@^@^@^@^@^@^D^@^@^@^@^@^@^@P<E5>td^D^@^@^@^HԱ^@^@^@^@^@^HԱ^@^@^@^@^@^HԱ
^@^@^@^@^@|_^C^@^@^@^@^@|_^C^@^@^@^@^@^D^@^@^@^@^@^@^@Q<E5>td^F^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^P^@^@^@^@^@^@^@R<E5>td^D^@^@^@^P<BF><C6>^@^@^@^@^@^P<CF><C6>^@^@^@^@^@^P<CF><C6>^@^@^@^@^@<F0>P^C^@^@^@^@^@<F0>P^C^@^@^@^@^@^A^@^@^@^@^@^@^@^D^@^@^@^T^@^@^@^C^@^@^@GNU^@1^?^ELYR1<8E>6<80><F0>4<AA>hn  lo\<BD>^@^@^@^@^C^@^@^@P^@^@^@
^B^@^@^@^G^@^@^@@^@^GP^A^H^L^L^T<84>^@<B1>^@^@^C^CP^@^@^@U^@^@^@Y^@^@^@^Ré2<U+0087> <C2>B<9C>H<C0><BA>՗jO.^T<AD><C4>^N;b2<CF>|&#36;^,<B5>2<91><D9><D3>^S:y<8F>j^P<D0>t<C4>p<85><E9>&#91;^R<AE>
ó<F1>^\<B9><AF>^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@8^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@Y^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^Y^E^@^@^R^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@<CC>^C^@^@^Q^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@?^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<9C>^@^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<B8>^@^@^@^R^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<CC>^@^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^P^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<BC>^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@Y^C^@^@^R^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@*^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<FB>^@^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@Z^D^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<FC>^B^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<C2>^B^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<80>^B^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^W^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
<A4>^E^@^@^P^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<A0>^D^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<AC>^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<D5>^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@2^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^L^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@a^@^@^@^P^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@o^B^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@a^D^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<B1>^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<C2>^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@0^E^@^@^Q^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<99>^E^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^_^D^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<80>^C^@^@^R^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@<CE>^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@8^E^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<9F>^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<89>^B^@^@^R^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@<AF>^B^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<F6>^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<E5>^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@ ^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<92>^E^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<83>^D^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<A7>^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@T^E^@
^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<EC>^B^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<8D>^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@b^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
<DE>^B^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<A7>^@^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<9B>^B^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<81>^E^@^@^Q^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@f^@^@^@^Q^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<9B>^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<83>^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@Y^B^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@e^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@P^D^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@D^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@t^D^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@F^E^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<E1>^@^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<A0>^E^@^@^P^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@q^C^@^@^R^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@<91>^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<B4>^D^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@#^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@L^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@,^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@a^B^@^@^Q^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<91>^D^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@U^@^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@u^A^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@F^@^@^@&quot;^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@<D3>^B^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@C^B^@^@^Q^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@k^E^@^@^Q^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^G^D^@^@^R^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^T^B^@^@^Q^@^M^@䠱^@^@^@^@^@^D^@^@^@^@^@^@^@<A9>^E^@^@^Q^@^M^@<F8>ӱ^@
^@^@^@^@^H^@^@^@^@^@^@^@<E3>^A^@^@^Q^@^M^@蠱^@^@^@^@^@^D^@^@^@^@^@^@^@<CE>^E^@^@^Q^@^M^@^@Ա^@^@^@^@^@^H^@^@^@^@^@^@^@,^B^@^@^Q^@^M^@p<A0><B1>^@^@^@^@^@r^@^@^@^@^@^@^@<FA>^A^@^@^Q^@^M^@젱^@^@
^@^@^@^@^@^@^@^@^@^@^@&quot;^E^@^@^Q^@^W^@<C0><FC><E2>^U^@^@^@^@^H^@^@^@^@^@^@^@&#125;^@^@^@^Q^@^R^@0<CF><C6>^@^@^@^@^@^H^@^@^@^@^@^@^@^A^E^@^@^Q^@^R^@Pp<C8>^@^@^@^@^@<88><AD>^A^@^@^@^@^@
<B9>^E^@^@^Q^@^V^@<C0>3<CA>^@^@^@^@^@FY^U^U^@^@^@^@<D4>^D^@^@^Q^@^R^@@<CF><C6>^@^@^@^@^@^L<A1>^A^@^@^@^@^@8^D^@^@^Q^@^W^@<B8><FC><E2>^U^@^@^@^@^H^@^@^@^@^@^@^@<EC>^D^@^@^Q^@^W^@<98><D5><DF>
^U^@^@^@^@^H^@^@^@^@^@^@^@<BF>^D^@^@^R^@^K^@<90>^M^A^@^@^@^@^@~^@^@^@^@^@^@^@^@__gmon_start__^@_ITM_deregisterTMCloneTable^@_ITM_registerTMCloneTable^@__cxa_finalize^@__sigsetjmp^@fmod^@jl_R
statprof/julia_sys.so-L2hvbWUva2lyaWxsL1NhbmRib3hlcy9TcG9ydHNNb2RlbGxpbmcvanVsaWFfc3lzLnNv.html

ikirill avatar Feb 02 '21 21:02 ikirill

Ha, that's quite funny indeed.

The package looks up the file name by calling Base.find_source_file here. So my guess is that we can find a stack frame that points at the .so file in this way. Once we have that, we can ask the PackageCompiler devs if they understand what's going on.

tkluck avatar Feb 03 '21 22:02 tkluck