diff options
author | Noel Grandin <noel@peralex.com> | 2021-04-30 13:00:35 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-04-30 16:03:35 +0200 |
commit | 857caa5fc69b92e781457a1b67a89aa051c2d70f (patch) | |
tree | 7437d7f6345f9dea81f4203517549c48fa971eae /offapi/com | |
parent | b9097800f4f997de2325bc9e588e6caea7a563c7 (diff) |
tdf#79049 speed up OOXML workbook load
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>
Diffstat (limited to 'offapi/com')
-rw-r--r-- | offapi/com/sun/star/frame/XModel3.idl | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/offapi/com/sun/star/frame/XModel3.idl b/offapi/com/sun/star/frame/XModel3.idl new file mode 100644 index 000000000000..96c527d261c2 --- /dev/null +++ b/offapi/com/sun/star/frame/XModel3.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XModel3_idl__ +#define __com_sun_star_frame_XModel3_idl__ + +#include <com/sun/star/frame/XModel2.idl> + + + module com { module sun { module star { module frame { + +/** extends interface XModel2 with optimised read access getArgs(). + + */ +interface XModel3 : com::sun::star::frame::XModel2 +{ + /** Provides optimised read access + (so we don't need to fetch expensive properties that we are not interested in) + on currently representation of the + com::sun::star::document::MediaDescriptor + of this model which describes the model and its state. + Returns only the selected args. + + @param requestedArgs + @returns the requested and possibly some more arguments with which the model was originally created or + stored the last time. + */ + sequence< com::sun::star::beans::PropertyValue > getArgs2([in] sequence< string > requestedArgs); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |