Skip to content

start:

Loose list of possible optimizations in the modules
SW / XML / MATH / LINGUISTIC

This is a loose list of optimizations items, which the members of the word processor team collects by his daily work. This list expands if any team member found more items. The status tells what happens with this items. If an item is implemented, then the status change and the build version is add.

If anybody find also some items, where we may change the code then he can write a mail to me (juergen.pingel@germany.sun.com)or add a task into the IssueZilla.

Status

Module

Type

Description

D

SRC628

LINGU

Runtime

Create dictionaries only if they needed, so it reduce the startup phase of the office.

Also don’t load all linguistic data files if only the status is ask for any existing component; use for this the configuration information.

D

SRC628

SW

Runtime

Load HTML template only if it needed, so it reduce the startup phase of the office

I

 

LINGUI

Runtime

Don’t check if any files for the linguistic exist, load them and ask afterwards if there exist any errors. (example: iprwrap.cxx: OpenDB, CheckPotLanguageStatus, dmwrap.cxx: CheckPotLanguageStatus )

Also may use the wrapper classes use pointer to any sub structures instead of member objects, so they can create if they needed.

I

 

SW

Runtime

Why must have the DrawingLayer (EditEngine) initial the spellchecker and hyphenator? The EditEngine can create them by here self if it needed.

D

SRC638

ALL

Code

Some Attributes contains the old virtual importXML and exportXML methods. These can remove, because the XML attribute export is changed

D

652

SW

Code/
Memory

The SwDocShell contains a pointer to the Sw3io object. This is the old binary reader/writer. This object can remove and create only if it needed.

I

 

SVX

Runtime

AutoCorrect Dialog: optimize the commit if more then one Stream must be updated. The Dialog knows the situation and is able to enclose this action.

D

SRC633

SW

Runtime

Use MultipropertySet in the API for PageDescriptor’s

D

SRC633/638

SW

Runtime

Use layout information for the XML file format. So the user can start earlier with the document editing.

I

 

MATH

Runtime

The nodes and symbol may use a FontCache, so they don’t use every time an own FontObject. They can share one, because often it’s the same one.

I

 

LINGU

Runtime

Some properties for the documents (by example the default language) can be load directly from the configuration. Currently mostly get the documents this from the Linguistic Component, so this must create.

I

 

SW

Code

Remove usage of SfxApplication:LocalizeDBName()

I

 

SVX

Runtime

In the auto-correction function lcl_SearchWordsInList is a linear search to see if the word match to one in the list. This can change to a STL hash-map.

D

SRC628

XML

Runtime

When exporting, all zip file data is written to a buffer in memory which is then passed to the UCB to be written to disk. If there are multiple OLE objects, this could be crippling. Data should be written to disk, buffered.

W

 

XML

Runtime

When importing, whole streams are read into memory at once and are then read from memory. They should be uncompressed and written to temporary files and be read from there instead. If the stream size is less than a nominal value (the SvCacheStream class which does something similar uses the value of 20k) then the file will instead be stored in memory.

W

 

SW

Runtime

The XML import/export creates every time a DrawModel (SwDoc::MakeDrawModel). This must change, so its only created if its needed.

I

 

SW

Runtime/Memory

The Query Interface of SwTextDocument creates every time a numberformatter to ask him for an interface, This must remove/change. Here we need a static method to ask if the object has this interface.

D

SRC638

XML

Code

Don’t export XML tokens as character pointer in an own object file. This expand the size of each DLL which use any of these XML tokens. This can change to a GetToken(nId) and IsToken(nId).

I

 

SW/SVTOOLS

Code

Don’t export RTF & HTML tokens as character pointer in an own object file. This expand the size of each DLL which use any of these tokens. This can change to a GetToken(nId) or to GetTokenTable() and then an Index access with the TokenId.

Last change: 03/15/2002

Agenda:

Status Symbols:

I

Idea

D

Done

W

in Work

C

Canceled