Kaydet (Commit) 87fad215 authored tarafından Michael Meeks's avatar Michael Meeks

LOK: Add a tiled rendering testbench.

Change-Id: I631c0506f427d974c3dd4c75484aa25603100895
üst 213be0be
......@@ -86,6 +86,7 @@ $(eval $(call gb_Helper_register_executables_for_install,OOO,ooo, \
))
$(eval $(call gb_Helper_register_executables,OOO, \
$(if $(filter LINUX,$(OS)), tilebench) \
$(call gb_Helper_optional,CRASHREP,crashrep) \
gnome-open-url.bin \
$(if $(filter-out ANDROID IOS MACOSX WNT,$(OS)),oosplash) \
......
#!/usr/bin/python
# 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 tool rips out configuration pieces that are not useful for
# a mobile viewer / editing application without a full UI.
#
# ideally the postprocess/ makefile would cope with this but its
# already over-complicated by rampant conditionals.
import sys
import xml.etree.ElementTree as ET
main_xcd_discard = [
'org.openoffice.Office/TableWizard', # huge
'org.openoffice.Office/WebWizard',
'org.openoffice.Office.DataAccess/Drivers', # no database
'org.openoffice.Office/Addons', # no addons
# no conventional UI; reverse sorted by size
'org.openoffice.Office.UI/GenericCommands',
'org.openoffice.Office/Accelerators',
'org.openoffice.Office/UI',
'org.openoffice.Office.UI/DrawImpressCommands',
'org.openoffice.Office.UI/Sidebar',
'org.openoffice.Office.UI/ChartCommands',
'org.openoffice.Office.UI/DbuCommands',
'org.openoffice.Office.UI/Controller',
'org.openoffice.Office/UI',
'org.openoffice.Office.UI/StartModuleCommands',
'org.openoffice.Office.UI/BasicIDEWindowState',
'org.openoffice.Office.UI/GenericCategories',
'org.openoffice.Office.UI/ChartWindowState',
'org.openoffice.Office.UI/Factories',
'org.openoffice.Office.UI/BaseWindowState',
'org.openoffice.Office.UI/BasicIDECommands',
'org.openoffice.Office.UI/Sidebar',
'org.openoffice.Office.UI/BibliographyCommands',
'org.openoffice.Office.UI/DbQueryWindowState',
'org.openoffice.Office.UI/WindowState',
'org.openoffice.Office.UI/Controller',
'org.openoffice.Office.UI/DbRelationWindowState',
'org.openoffice.Office.UI/DbTableWindowState',
'org.openoffice.Office.UI/DbTableDataWindowState',
'org.openoffice.Office.UI/DbBrowserWindowState',
'org.openoffice.Office.UI/WindowContentFactories',
'org.openoffice.Office.UI/Factories',
'org.openoffice.Office.UI/StartModuleWindowState',
'org.openoffice.Office.UI/GlobalSettings',
'org.openoffice.Office.UI/Commands',
'org.openoffice.Office.UI/BibliographyCommands',
'org.openoffice.Office.UI/StartModuleCommands',
'org.openoffice.Office.UI/DrawImpressCommands',
'org.openoffice.Office.UI/BasicIDECommands',
'org.openoffice.Office.UI/GenericCommands',
'org.openoffice.Office.UI/ChartCommands',
'org.openoffice.Office.UI/DbuCommands',
'org.openoffice.Office.UI/BibliographyWindowState',
'org.openoffice.Office.UI/StartModuleWindowState',
'org.openoffice.Office.UI/DbTableDataWindowState',
'org.openoffice.Office.UI/DbRelationWindowState',
'org.openoffice.Office.UI/DbBrowserWindowState',
'org.openoffice.Office.UI/BasicIDEWindowState',
'org.openoffice.Office.UI/DbTableWindowState',
'org.openoffice.Office.UI/DbQueryWindowState',
'org.openoffice.Office.UI/ChartWindowState',
'org.openoffice.Office.UI/BaseWindowState',
'org.openoffice.Office.UI/GenericCategories',
'org.openoffice.Office.UI/Category',
]
if __name__ == '__main__':
tree = ET.parse(sys.argv[1])
root = tree.getroot()
print "Foo\n"
saved = 0
total = 0
for child in root:
section = child.attrib['{http://openoffice.org/2001/registry}name']
package = child.attrib['{http://openoffice.org/2001/registry}package']
size = len(ET.tostring(child));
total = total + size
key = '%s/%s' % (package, section)
if key in main_xcd_discard:
root.remove(child)
print 'removed %s - saving %d' % (key, size)
saved = saved + size
print "saved %d of %d bytes: %2.f%%" % (saved, total, saved*100.0/total)
tree.write(sys.argv[2], 'UTF-8', True)
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# 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/.
#
$(eval $(call gb_Executable_Executable,tilebench))
$(eval $(call gb_Executable_set_include,tilebench,\
$$(INCLUDE) \
-I$(SRCDIR)/desktop/inc \
))
$(eval $(call gb_Executable_use_libraries,tilebench,\
libreofficekitgtk \
sal \
))
$(eval $(call gb_Executable_add_libs,tilebench,\
-lm \
-ldl \
-lpthread \
))
$(eval $(call gb_Executable_add_exception_objects,tilebench,\
libreofficekit/qa/tilebench/tilebench \
))
# vim: set noet sw=4 ts=4:
......@@ -22,6 +22,10 @@ $(eval $(call gb_Module_add_targets,libreofficekit,\
))
endif # ($(ENABLE_GTK),)
$(eval $(call gb_Module_add_targets,libreofficekit,\
Executable_tilebench \
))
endif # ($(OS),LINUX)
# vim: set ts=4 sw=4 et:
/* -*- 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/.
*/
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <osl/time.h>
#include <LibreOfficeKit/LibreOfficeKitInit.h>
#include <LibreOfficeKit/LibreOfficeKit.hxx>
using namespace lok;
static int help()
{
fprintf( stderr, "Usage: tilebench <absolute-path-to-libreoffice-install> [path to document]\n" );
fprintf( stderr, "renders a selection of small tiles from the document, checksums them and times the process\n" );
return 1;
}
static double getTimeNow()
{
TimeValue aValue;
osl_getSystemTime(&aValue);
return (double)aValue.Seconds +
(double)aValue.Nanosec / (1000*1000*1000);
}
int main( int argc, char* argv[] )
{
struct TimeRecord {
const char *mpName;
double mfTime;
TimeRecord() : mpName(NULL), mfTime(getTimeNow()) { }
explicit TimeRecord(const char *pName) :
mpName(pName ), mfTime(getTimeNow()) { }
explicit TimeRecord(const TimeRecord *pSrc) :
mpName(pSrc->mpName), mfTime(pSrc->mfTime) { }
};
std::vector< TimeRecord > aTimes;
if( argc < 2 ||
( argc > 1 && ( !strcmp( argv[1], "--help" ) || !strcmp( argv[1], "-h" ) ) ) )
return help();
if ( argv[1][0] != '/' )
{
fprintf(stderr, "Absolute path required to libreoffice install\n");
return 1;
}
aTimes.push_back(TimeRecord("initialization"));
Office *pOffice = lok_cpp_init(argv[1]);
aTimes.push_back(TimeRecord());
if (argv[2] != NULL)
{
aTimes.push_back(TimeRecord("load document"));
Document *pDocument(pOffice->documentLoad(argv[2]));
aTimes.push_back(TimeRecord());
aTimes.push_back(TimeRecord("destroy document"));
delete pDocument;
aTimes.push_back(TimeRecord());
}
delete pOffice;
double nTotal = 0.0;
fprintf (stderr, "profile run:\n");
for (size_t i = 0; i < aTimes.size() - 1; i++)
{
double nDelta = aTimes[i+1].mfTime - aTimes[i].mfTime;
fprintf (stderr, " %s - %2.4f(ms)\n", aTimes[i].mpName, nDelta * 1000.0);
if (aTimes[i+1].mpName == NULL)
i++; // skip it.
nTotal += nDelta;
}
fprintf (stderr, "Total: %2.4f(s)\n", nTotal);
return 0;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment