public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "marxin at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug gcov-profile/95348] GCC records zero functions and modules in the profiling data file, ICC does NOT
Date: Wed, 10 Jun 2020 08:21:34 +0000	[thread overview]
Message-ID: <bug-95348-4-SDNdq4fYg8@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-95348-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95348

--- Comment #28 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Qing Zhao from comment #26)
> > --- Comment #25 from Martin Liška <marxin at gcc dot gnu.org> ---
> >> I will try to get more data on our real application. 
> >> 
> >> one question: why not just delete the entire records whose counter is zero
> >> and delete the entire file whose counter is zero?
> > 
> > Because we need to distinguish in between situations where a function was
> > really not executed (counter == 0) and the situation where we miss profile for
> > a function.
> Understood.  However, is it possible to just provide an option for the user
> to choose
> to just delete all the zero records and files in order to save more space?

It can be possible to add option for that, yes. To be honest, I don't have much
time to work on that right now.

And you still haven't replied to my essential question: Why can't you merge
profiles into one directory during run? Or at least merge to a reasonable
number of folders that you'll merge later?

Note that you can use -fprofile-dir=path with:
%q{VAR}
value of environment variable VAR

which can be used to multiplex into multiple folders for concurrent processes.


> > 
> > How exactly do you merge profiles? Do you run parallel invocation which can
> > take log2(N)?
> We run serial merge adding one at a time right now. 
> Is it possible for gcov-merge to add a new functionality to automatically
> merge complete
> Set of subdirectories?

One would need to run it in multiple threads and I've made a Python script
prototype:
https://github.com/marxin/script-misc/blob/master/gcov-merge-parallel.py

So yes, current GCOV streaming is far from being optimal, but with a small
tweaks we can make it working for your scenario..

  parent reply	other threads:[~2020-06-10  8:21 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-26 20:37 [Bug gcov-profile/95348] New: " qinzhao at gcc dot gnu.org
2020-05-27  7:42 ` [Bug gcov-profile/95348] " rguenth at gcc dot gnu.org
2020-05-27  9:31 ` marxin at gcc dot gnu.org
2020-05-27 14:13 ` qinzhao at gcc dot gnu.org
2020-05-27 14:22 ` marxin at gcc dot gnu.org
2020-05-27 20:36 ` qinzhao at gcc dot gnu.org
2020-05-28 14:08 ` marxin at gcc dot gnu.org
2020-05-29  9:11 ` marxin at gcc dot gnu.org
2020-05-29 15:28 ` qinzhao at gcc dot gnu.org
2020-05-29 15:31 ` qinzhao at gcc dot gnu.org
2020-05-29 15:38 ` marxin at gcc dot gnu.org
2020-05-29 15:40 ` marxin at gcc dot gnu.org
2020-05-29 15:43 ` marxin at gcc dot gnu.org
2020-05-29 16:37 ` qing.zhao at oracle dot com
2020-05-29 16:40 ` qing.zhao at oracle dot com
2020-05-29 16:42 ` qinzhao at gcc dot gnu.org
2020-05-30  7:23 ` marxin at gcc dot gnu.org
2020-06-01 15:24 ` qinzhao at gcc dot gnu.org
2020-06-01 15:39 ` qinzhao at gcc dot gnu.org
2020-06-01 15:45 ` qing.zhao at oracle dot com
2020-06-01 15:45 ` qing.zhao at oracle dot com
2020-06-02  8:23 ` marxin at gcc dot gnu.org
2020-06-02 17:42 ` qinzhao at gcc dot gnu.org
2020-06-03  6:35 ` marxin at gcc dot gnu.org
2020-06-03 15:17 ` qing.zhao at oracle dot com
2020-06-10  8:16 ` marxin at gcc dot gnu.org
2020-06-10  8:21 ` marxin at gcc dot gnu.org [this message]
2020-06-10 14:49 ` qing.zhao at oracle dot com
2020-06-10 19:43 ` marxin at gcc dot gnu.org
2020-06-10 20:17 ` qing.zhao at oracle dot com
2020-06-10 20:26 ` qing.zhao at oracle dot com
2020-06-11  9:14 ` marxin at gcc dot gnu.org
2020-06-11 14:12 ` qing.zhao at oracle dot com
2020-06-11 18:08 ` marxin at gcc dot gnu.org
2020-06-15 19:54 ` qinzhao at gcc dot gnu.org
2020-06-15 19:56 ` qinzhao at gcc dot gnu.org
2020-06-16 12:53 ` marxin at gcc dot gnu.org
2020-06-16 15:58 ` qinzhao at gcc dot gnu.org
2020-06-17  6:35 ` marxin at gcc dot gnu.org
2020-06-24  9:06 ` marxin at gcc dot gnu.org
2020-07-02  8:16 ` cvs-commit at gcc dot gnu.org
2020-07-02  8:24 ` marxin at gcc dot gnu.org
2020-07-02  8:24 ` marxin at gcc dot gnu.org
2021-04-27 11:38 ` jakub at gcc dot gnu.org
2021-07-28  7:04 ` rguenth at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-95348-4-SDNdq4fYg8@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).