noting that this commit is completely blind. But we're not getting
good stacks on jenkins, and it doesn't look right to me that we're
using 64-bit functions on 32-bit stacks, so make the 32-bit paths
consistently use 32-bit functions and structures.
Change-Id: I413ab97001246c442df151700cc618df4391e03b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131964
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This reverts
commit 2483cd198b
Author: Jan-Marek Glogowski <glogow@fbihome.de>
Date: Fri Feb 11 19:40:36 2022 +0100
Correctly depend on source component file
and
commit 17ec55c480
Author: Jan-Marek Glogowski <glogow@fbihome.de>
Date: Thu Jan 20 10:06:54 2022 +0100
Fail on non-optional, but filtered component names
because they cause failures on Windows builds that look
like:
warning: failed to load external entity "C:/cygwin/home/tdf/lode/jenkins/workspace/gerrit_windows@2/workdir/ComponentTarget/binaryurp/source/binaryurp.component"
cannot process C:/cygwin/home/tdf/lode/jenkins/workspace/gerrit_windows@2/workdir/ComponentTarget/binaryurp/source/binaryurp.component
Change-Id: Ia34cdabd76b47a6a4686ebd0f96ceb774d3236f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129956
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
inline some hot methods, and use OUStringLiteral to avoid repeated
construction of an OUString, saves about 3%
Change-Id: I6d09ade4e08a94ed5dd49a8882e26bb5786409d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125873
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Remove the temporary buffer in INetURLObject::setAbsURIRef,
and just write directly to the main buffer.
This is a behaviour change since we are "committing" bad data to the
buffer if the URL is incorrect, but since it that case we set the
whole object to be invalid, that should not matter.
Change-Id: Ic8e7d4027bcb927005edd7de4098f4f525412869
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125648
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tweak INetURLObject to reduce the number of
OUString and OUStringBuffer we create,
saves 5%
And add a asView() method to OUStringConstExpr,
to make it easier to pass to OUStringBuffer::insert
Change-Id: I115ec2398cfc8df39bd1efbbd5f0d5cc9712dba7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125600
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tweak INetURLObject::parseHost so it doesn't need its own
OUStringBuffer, and can just use the callers'
Saves 5%
Change-Id: I481fabd4272bc9f172dd751a7019090b95a65e2d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125599
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
we only care about the "highest priority" attribute, so we only
need to store a single attribute, not a whole vector worth.
Shaves 5% off the load time for me.
Change-Id: Ib7dc800db47502b33c69df0fe473a82bd8d93af5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122773
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
we don't need to immediately re-order objects when setting the
Z-order, just set the dirty flag and we can calculate the proper order
layout.
This takes the time for the chart to appear from multiple minutes
to 20sec for me.
Change-Id: If80569da09469423f19f9fe82b40dfbdac14f161
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121806
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
we are loading a spreadsheet in parallel here, but the parallel threads
achievei very little actual concurrency because of heavy contention
in the SharedStringPool mutex.
So switch to a concurrent hash map. I looked at a couple of different
ones (including the Folly one), and this was the one with the simplest
resulting code.
This takes my load time from 12.5s to 8s
Change-Id: I04d6d8e11d613b510eb3bc981f3338819b7ac813
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121717
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
so the multiple unit tests don't stomp on each other.
This fixes a couple of things in my earlier attempt
(*) actually set the env variable on Windows
(*) don't use a global variable to test the env var, because that
variable might be initialised BEFORE the env var is actually set
Change-Id: Id43a1dd2fbd324691e0b6578c9026b8a523012e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121436
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
we can use a default object for the default constructo case, and
remove one malloc for each default constructed object
Change-Id: I0bec37ef9161a210973abb25669a9f16a5e0ea75
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120603
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
instead of constructing a child sequence, and appending that
a parent sequence, just pass the parent sequence down the call
hierarchy, so we end up doing less copying.
Change-Id: If39a0779e543c6aa01f5e2e3ae63d395e0c85f7d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120521
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Remove dynamic_cast'ing to Primitive2D, expensive and unnecessary
<quikee[m]> noelgrandin: nobody is using XPrimtive that is not
derived from BasePrimitive2D in an extension ... mainly as it is
not even possible
Change-Id: I68224021f0fbc35fe2a973198ba78d2b41ea172d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120417
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
We spend most of the time in MergePortions, and the resorting is
a significant part of that, so only resort if we actually have to.
This shaves 10% off the load time for this document.
Change-Id: I2380c5aa744f6d9c82195bb2a17ced2ce7616e9a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120269
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Temp files created from OTempFileService are always opened with StreamMode::SHARE_DENYALL.
So normally you can't open them twice.
But the JunitTest_unotools_complex unit test used to work because it exploited a pessimisation in OTempFileService,
where that code would close the file when we read to the end.
Which meant that the unit test could open it again and read it.
However, in
commit 218f36dd61
Date: Sun Jun 20 18:51:12 2021 +0200
tdf#135316 remove OTempFileService pessimisation
I removed that pessimisation.
So make the share mode a little more permissive.
Change-Id: I297a5c9c0505816b399fad29414077d03231ec72
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118146
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
if we're going to be deleting a temporary file, there is no point
flushing it on close, which has a measureable cost
This takes my load time from 17s to 16s
Change-Id: I2fce7eeaf0ce9fef826b4ce9a1a4d4c8114cac76
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117607
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
it is faster to just process OUString data, rather than perform
expensive conversion to OString and back again.
Change-Id: Ie007b872ee507ac5c6e8b55cc0a49ef3ac1f0139
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117608
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Closing the temp file when we read to the end, and then opening
it again later actually is quite expensive, just leave it open.
This takes my load time from 22s to 19s
Also clean up the unit-test that failed, so that I can get
a useful stack trace out of it when something fails,
specifically
(*) throw an exception when something goes wrong, instead
of just writing a message to stdout
(*) don't catch exceptions and write useless messages - just
let the exception flow up to the JUnit handler, which will log
a nice stacktrace with line numbers.
Change-Id: If55c997f91eea4e703e92c632961d68b3453076d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117517
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
small improvement to PDF import
no need to construct temporary string objects when we are just to
going to convert them into int/double.
So use a view and convert the data through the view.
Change-Id: I824fe88bf17142b48fe6032e10c0f3a111927e96
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115616
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Sc::NumUtil::isLatinScript is pretty hot, so add a small
cache to ScDocumentImport.
This takes my load time from 27s to 18s.
Change-Id: I51fa891836d678f0d8700653e3a3a095297aeae7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114987
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Optimise LocaleDataWrapper for reads by initialising the
data we in the constructor, so we don't need any kind of
locking
Reduces load time from 34s to 28s.
Change-Id: I4bd3bddb30b70ba015fe5b1372534f9507762b74
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114960
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Exit this loop early if we aren't going to make progress
anyhow.
This takes the load time from 40s to 34s for me.
Change-Id: I31887442cde6e3fc05f1fce10bb3dde9c2b88bf2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114942
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
the allocation of memory and pointer chasing was
slowing things down in the styles conversion.
So switch to more cache-dense data structure,
and re-arrange the loops to be more cache friendly.
The takes the time from 1m9 to 40s for me.
Change-Id: I876580adc7823313b0cdb067f2f6b3e61c39ecf8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114941
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
we spend a lot of time in ScAttrArray::GetLastVisibleAttr
which appears to be very expensive for this worksheet.
This is re-computed every time we enter SfxBaseModel::getArgs
Reduce the recomputation by introducing a new method which
only retrieves specific SfxBaseModel arguments.
This takes the load time from 5m9 to 1m9 for me.
Change-Id: I605fae0faa94760c7d6993877c9559ea5dc813cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114905
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
So that we have fewer cases to deal with when we transition to
32-bit bitmaps.
(*) rename maMask to maAlphaMask, since now it is only being used
for alpha duties.
(*) drop mbAlpha and mbTransparent to simplify state management,
the only thing we need to check for alpha is if maAlphaMask is
non-empty.
Change-Id: I06252e38e950e846a94b4c2ba8ea763be17801fe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111679
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
These child objects do not need to use shared_ptr, since no-one
else holds a pointer to them, and we always allocate them, so
just allocate them inline the parent object.
Change-Id: I96ab644a3a2f1e962df02d590c6a9944ef4a9ce3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114085
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
for scaled rows. Teach the ForwardIterator to use the slightly
faster normal search, and make getRangeData cache the resulting
iterator even when doing a tree search. The combination of
tree search for the first item, and then using a cached iterator
to step through the row data is fairly fast.
Take my load time from 23s to 22.3s
Change-Id: Icd1aa3d3a8022a073b125dfc05a670b75da1837e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114045
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
when we are about to overwrite the data anyway.
Takes my load time from 24s ro 23s.
The important change (for this test file) is in
ScInterpreter::ScAmpersand
but I changed all the other places that have the
same problem.
Change-Id: I95b8ac3b2c10a8b638551e13f6f582e793058833
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114041
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>