[Libreoffice-bugs] [Bug 45607] New: LibreOffice calc significantly slower than OpenOffice calc
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Sat Feb 4 10:15:51 CET 2012
https://bugs.freedesktop.org/show_bug.cgi?id=45607
Bug #: 45607
Summary: LibreOffice calc significantly slower than OpenOffice
calc
Classification: Unclassified
Product: LibreOffice
Version: LibO 3.4.5 release
Platform: x86-64 (AMD64)
OS/Version: All
Status: UNCONFIRMED
Severity: normal
Priority: medium
Component: Spreadsheet
AssignedTo: libreoffice-bugs at lists.freedesktop.org
ReportedBy: xabc123 at gazeta.pl
Curious about the LibreOffice, I wanted to run my application which was created
in OpenOffice calc. It was a surprise to see a significant difference in
execution time between LO and OO. After isolating the problem, I could measure
the performance in both packages.
Please run the following test macro which fills an area of 200 rows with a
formula in the column 1 and a string in the column 2.
Execution time on my computer:
OpenOffice 3.3.0 - 8 seconds
LibreOffice 3.4.5 - 15 seconds
'**************************************************************************
Sub test
Const END_ROW As Integer = 199
Dim document As Object
Dim dispatcher As Object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Dim oDoc As Object
Dim oSheet As Object
Dim oRange As Object
Dim oCell As Object
oDoc = ThisComponent
oSheet = oDoc.getCurrentController.ActiveSheet
' Select and clean the test cell range
oRange = oSheet.getCellRangeByPosition(0, 0, 1, END_ROW)
oDoc.CurrentController.select(oRange)
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
Dim fun As String
fun = "=SHOW_NUMBER(ROW(); ISBLANK(INDIRECT(""B"" & ROW())))"
Dim start_time As Long
start_time = GetSystemTicks()
' Fill the test cell range:
' column 1: formula for displaying the row number
' column 2: a constant string
Dim row As Integer
For row = 0 To END_ROW
oRange = oSheet.getCellRangeByPosition(0, row, 0, row)
oDoc.CurrentController.select(oRange)
oCell = oSheet.getCellByPosition(0, row)
oCell.setFormula(fun)
oCell = oSheet.getCellByPosition(1, row)
oCell.String = "abc"
Next row
oRange = oSheet.getCellRangeByPosition(0, 0, 0, 0)
oDoc.CurrentController.select(oRange)
oRange = oDoc.createInstance("com.sun.star.sheet.SheetCellRanges")
oDoc.CurrentController.select(oRange)
Print "Test executed in " + (GetSystemTicks() - start_time)/1000 + " s"
End Sub
'**************************************************************************
Function show_number(ByVal nr As Integer, ByVal empty As Boolean) As String
show_number = ""
If Not empty Then
show_number = Trim(Str(nr)) + "."
End If
End Function
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the Libreoffice-bugs
mailing list