[Haskell-cafe] Profiling code using tagsoup

Fabien R theedge456 at free.fr
Thu Feb 8 19:20:03 UTC 2018


Hello,
I have troubles profiling my EPG grabber.

The profile log is:
--------------------------
	Thu Feb  8 17:14 2018 Time and Allocation Profiling Report  (Final)

	   tv_grab_fr +RTS -pa -hc -i1 -RTS --days 1 --output-file /res.xml

	total time  =      103.35 secs   (103353 ticks @ 1000 us, 1 processor)
	total alloc = 7,602,130,080 bytes  (excludes profiling overheads)

COST CENTRE                                     MODULE
                    SRC
                  %time %alloc  ticks     bytes

GC                                              GC
                    <built-in>
                   50.5    0.0  52166     57504
parse
Text.HTML.TagSoup.Specification
src/Text/HTML/TagSoup/Specification.hs:35:1-19
15.4   15.2  15879 1159030944
output
Text.HTML.TagSoup.Implementation
src/Text/HTML/TagSoup/Implementation.hs:(80,1)-(142,44)
13.5   22.9  14000 1743780696
expand
Text.HTML.TagSoup.Implementation
src/Text/HTML/TagSoup/Implementation.hs:(49,1)-(60,30)
11.6   39.0  11976 2962740856
--------------------------
Further in the log, I see:

TvGrabPrograms.mySccGetProgramDetails
TvGrabPrograms
src/TvGrabPrograms.hs:69:1-17                             5000
19    0.6    2.2    42.3   79.2    640 165979512
     ~/=
 Text.HTML.TagSoup
src/Text/HTML/TagSoup.hs:103:1-25                         5543
135987    0.1    0.0    28.5   44.4     54   3263688
      ~==
 Text.HTML.TagSoup
src/Text/HTML/TagSoup.hs:(87,1)-(99,21)                   5544
135987    0.5    0.3    28.4   44.3    485  19485856
       parseTags
 Text.HTML.TagSoup.Parser
src/Text/HTML/TagSoup/Parser.hs:16:1-41                   5545
135987    0.0    0.0    27.9   44.1     44         0
        parseTagsOptions
 Text.HTML.TagSoup.Parser
src/Text/HTML/TagSoup/Parser.hs:25:1-39                   5546
135987    0.1    0.1    27.9   44.1    138   7615272
         parseTagsOptions
 Text.HTML.TagSoup.Manual
src/Text/HTML/TagSoup/Manual.hs:12:1-54                   5547
135987    0.4    0.3    27.7   44.0    422  22845912
          output
 Text.HTML.TagSoup.Implementation
src/Text/HTML/TagSoup/Implementation.hs:(80,1)-(142,44)   5548
135987    8.0   13.1     8.0   13.2   8221 994675336
--------------------------
But I see no function (~/=) calling (~==) calling parseTags in my code.

The only line using parseTags is:
let !tl = parseTags $ L8.unpack $ responseBody httpRsp

Did I miss something ?

Thanks in advance,
Fabien




More information about the Haskell-Cafe mailing list