Bug 113936 - Importing a PDF is slower compared to 5.4
Summary: Importing a PDF is slower compared to 5.4
Status: RESOLVED WORKSFORME
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Draw (show other bugs)
Version:
(earliest affected)
6.0.0.0.alpha1+
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: bibisected, bisected, haveBacktrace, perf
Depends on:
Blocks: PDF-Import-Draw
  Show dependency treegraph
 
Reported: 2017-11-19 20:30 UTC by Telesto
Modified: 2023-08-25 03:05 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
Bibisect log (2.91 KB, text/plain)
2017-11-19 20:35 UTC, Telesto
Details
Callgrind output from master (6.61 MB, application/x-xz)
2018-06-23 19:21 UTC, Buovjaga
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Telesto 2017-11-19 20:30:38 UTC
Description:
Importing a PDF is slower compared to 5.4

Steps to Reproduce:
1. Download https://people.gnome.org/~michael/data/2014-04-26-story-of-libreoffice.pdf 
2. Open Draw -> And open the file with Open Dialog. Take notice of the time required to open the file

Actual Results:  
Roughly 18 seconds 

Expected Results:
6 seconds


Reproducible: Always


User Profile Reset: No



Additional Info:
Found in
Version: 6.0.0.0.alpha1+
Build ID: b3f1d199a72ce87cb65ddaeac922564f57da6a4d
CPU threads: 4; OS: Windows 6.3; UI render: default; 
TinderBox: Win-x86@42, Branch:master, Time: 2017-11-06_00:10:53
Locale: nl-NL (nl_NL); Calc: CL


User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Comment 1 Telesto 2017-11-19 20:35:08 UTC
Created attachment 137862 [details]
Bibisect log

Bibisected to:

author	Caolán McNamara <caolanm@redhat.com>	2017-06-11 19:56:30 (GMT)
committer	Caolán McNamara <caolanm@redhat.com>	2017-07-21 07:20:50 (GMT)
commit 00657aef09d854c74fb426a935a3e8b1fc390bb0 (patch)
tree fd1a9bb264fe15dcc129498e62060ecd256b1ee7
parent fa987cbb813cfd729fe490f2f1258b7c8d7fb174 (diff)
migrate to boost::gettext
* all .ui files go from <interface> to <interface domain="MODULE"> e.g. vcl
* all .src files go away and the english source strings folded into the .hrc as NC_("context", "source string")
* ResMgr is dropped in favour of std::locale imbued by boost::locale::generator pointed at matching
  MODULE .mo files
* UIConfig translations are folded into the module .mo, so e.g. UIConfig_cui
  goes from l10n target to normal one, so the res/lang.zips of UI files go away
* translation via Translation::get(hrc-define-key, imbued-std::locale)
* python can now be translated with its inbuilt gettext support (we keep the name strings.hrc there
  to keep finding the .hrc file uniform) so magic numbers can go away there
* java and starbasic components can be translated via the pre-existing css.resource.StringResourceWithLocation
  mechanism
* en-US res files go away, their strings are now the .hrc keys in the source code
* remaining .res files are replaced by .mo files
* in .res/.ui-lang-zip files, the old scheme missing translations of strings
  results in inserting the english original so something can be found, now the
  standard fallback of using the english original from the source key is used, so
  partial translations shrink dramatically in size
* extract .hrc strings with hrcex which backs onto
   xgettext -C --add-comments --keyword=NC_:1c,2 --from-code=UTF-8 --no-wrap
* extract .ui strings with uiex which backs onto
   xgettext --add-comments --no-wrap
* qtz for gettext translations is generated at runtime as ascii-ified crc32 of
   content + "|" + msgid
* [API CHANGE] remove deprecated binary .res resouce loader related uno apis
      com::sun::star::resource::OfficeResourceLoader
      com::sun::star::resource::XResourceBundleLoader
      com::sun::star::resource::XResourceBundle
    when translating strings via uno apis
      com.sun.star.resource.StringResourceWithLocation
    can continue to be used
Comment 2 Buovjaga 2017-11-20 19:14:44 UTC
It seems 5.4 got faster and then the speed slowed down again. Takes the same time for me, about 10 secs, with 5.3 and 6.0. With 5.4 it takes 5-6 secs.

The bisected commit is a big change, migration to gettext, so I'm not sure it makes sense to ping Caolán right away. Profiling would be nice.

Version: 5.3.0.0.alpha1 (x64)
Build ID: f4ca1573fcf445164c068c1046ab5d084e1b005f
CPU Threads: 4; OS Version: Windows 6.19; UI Render: default; 
Locale: fi-FI (fi_FI); Calc: group

Version: 5.4.3.2 (x64)
Build ID: 92a7159f7e4af62137622921e809f8546db437e5
CPU threads: 4; OS: Windows 6.19; UI render: default; 
Locale: fi-FI (fi_FI); Calc: group

Version: 6.0.0.0.alpha1+ (x64)
Build ID: a5af0fd9f27af42cf2e8571f659cdad6e606215b
CPU threads: 4; OS: Windows 10.0; UI render: default; 
TinderBox: Win-x86_64@42, Branch:master, Time: 2017-11-07_00:30:02
Locale: fi-FI (fi_FI); Calc: group
Comment 3 paulystefan 2017-11-27 21:30:43 UTC
5.3.7.2 and 5.4.3.2 x64 win10  

i would say nearly same time with AMD Phenom II without precise time stop

perhaps a problem of cpu type?
Comment 4 Buovjaga 2017-11-27 21:45:31 UTC
pauly: 6.0 should be slower than 5.4
Comment 5 paulystefan 2018-06-22 17:05:36 UTC
yes it is: about double time 6.0.5.1-64 to 5.4.7.2-64 with win10-64
Comment 6 Buovjaga 2018-06-23 19:21:16 UTC
Created attachment 143059 [details]
Callgrind output from master

Arch Linux 64-bit
Version: 6.2.0.0.alpha0+
Build ID: 5b42a17dc99fba2ccf8dd8d0a8e0e4e836e30120
CPU threads: 8; OS: Linux 4.17; UI render: default; VCL: kde4; 
Locale: fi-FI (fi_FI.UTF-8); Calc: group threaded
Built on June 22nd 2018
Comment 7 Noel Grandin 2019-06-21 14:43:25 UTC
The primary problem here is that we are parsing the whole file twice inside pdfi::getAdditionalStream.

Once called from 
   pdfi::PDFDetector::detect
and once from
   pdfi::PDFIHybridAdaptor::filter

It looks like the code is trying to avoid just that situation by passing around an "EmbeddedSubstream" css::beans::PropertyValue, but the path that is calling the second time here does not seam to preserve that property.

Presumably there is some mechanism for these kinds of properties to be preserved and passed on by the sfx2 layer? Can't quite see how to do that.
Comment 8 paulystefan 2019-08-23 22:23:51 UTC
same time in 6.3.0.4  in relation to 6.0

so problem is not solved
Comment 9 QA Administrators 2021-08-23 03:51:14 UTC Comment hidden (obsolete)
Comment 10 QA Administrators 2023-08-24 03:14:16 UTC Comment hidden (obsolete)
Comment 11 Telesto 2023-08-24 20:02:55 UTC
9 seconds with
Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: c9916d9be9c060d43fc063b76d70629162650fea
CPU threads: 4; OS: Windows 6.3 Build 9600; UI render: Skia/Raster; VCL: win
Locale: nl-NL (nl_NL); UI: en-US
Calc: CL threaded

Good enough, IMHO
Comment 12 QA Administrators 2023-08-25 03:05:26 UTC
Dear Telesto,

To make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year.

There have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present.

If you have time, please do the following:

Test to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/

If the bug is present, please leave a comment that includes the information from Help - About LibreOffice.
 
If the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information from Help - About LibreOffice.

Please DO NOT

Update the version field
Reply via email (please reply directly on the bug tracker)
Set the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not 
appropriate in this case)


If you want to do more to help you can test to see if your issue is a REGRESSION. To do so:
1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from https://downloadarchive.documentfoundation.org/libreoffice/old/

2. Test your bug
3. Leave a comment with your results.
4a. If the bug was present with 3.3 - set version to 'inherited from OOo';
4b. If the bug was not present in 3.3 - add 'regression' to keyword


Feel free to come ask questions or to say hello in our QA chat: https://web.libera.chat/?settings=#libreoffice-qa

Thank you for helping us make LibreOffice even better for everyone!

Warm Regards,
QA Team

MassPing-UntouchedBug