Profiling code using tagsoup

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Profiling code using tagsoup

Fabien R
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


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
Reply | Threaded
Open this post in threaded view
|

Re: Profiling code using tagsoup

Brandon Allbery
You would need to show your source; that line by itself is not enough.

On Thu, Feb 8, 2018 at 2:20 PM, Fabien R <[hidden email]> wrote:
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


_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.



--
brandon s allbery kf8nh                               sine nomine associates
[hidden email]                                  [hidden email]
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.