Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


Hey,

On Sat, Jan 3, 2015 at 12:09 PM, Maarten Hoes <hoes.maarten@gmail.com>
wrote:



On Sat, Jan 3, 2015 at 12:37 AM, Jens Tröger <jens.troeger@light-speed.de>
wrote:

Thank you, Maarten,

I've run office like so from within the Python script:

  p = subprocess.Popen("valgrind --tool=callgrind soffice
--accept=\"socket,host=localhost,port=2002;urp;StarOffice.ServiceManager\"",
shell=True, env=myenv)

and got five callgrind.out.* files once the script terminated soffice.
I ran those through

  callgrind_annotate callgrind.out.*

Note that I'm using the default office image which (I assume) has no
debug symbols.  The data doesn't make much sense.  Considering the loop
in question ran for about ~45sec (with and without valgrind?!) then I'd
expect an instruction count _much_ larger than a few hundreds of
thousands.  In all four profiles, though, libc's _dl_addr and ld's symbol
lookup take most of the time.  Not sure I trust these profiles.

Attached.

Jens



Yes, it looks like you are using the libreoffice rpm/deb package that was
installed on your linux distribution in '/usr/bin/soffice'. I dont think
that that one will have debugging symbols (at least, not by default. Fedora
allows you to install 'libreoffice-debuginfo', not sure about Ubuntu).

Im not sure if this will change anything, but could you use the build that
sits in the sourcetree in 'instdir/program/soffice' when the build finishes
? Specify it with the full absolute path, like for example :

/home/buildslave/source/libo-core/instdir/program/soffice

It appears that the default way to build libreoffice, if you dont
explicitly specify otherwise, is to include the debug symbols (my build has
them).



Nearly all distros provide debuginfos that will make the callgrind output
somewhat nicer. In a self build tree you need to use --enable-symbols as
option (no enable-debug or enable-dbgutil as they will remove the
optimization that is necessary for useful profiling).

To analyze the callgrind output you should use kcachegrind which provides a
nice UI to go through the results.

Regards,
Markus

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.