Performance/Meetings/2009 03

From Apache OpenOffice Wiki
Jump to: navigation, search

2009-3-13

Overall Status

Work Status Description Member(IRC nick)
OOo Performance Test System Just finished the first version of test system, and will create CWS and update it next week... liheng
Investigating Calc's area broadcasters Started investigating Calc's area broadcasters, see http://wiki.services.openoffice.org/wiki/Calc/Performance/Refactoring_Area_Broadcasters, but got interrupted by 3.1 blocker issues. erAck
Runtime loader instructions improvements on Linux Got substantial improvements of instructions burned in runtime loader on Linux through use of -Bsymbolic-functions/-Bsymbolic (issue 85679) together with latest GCC/binutils; now looking at whether those changes are indeed correct (esp. -Bsymbolic, which can cause different bindings be used for one data symbol across libraries). sb
Reorder code to reduce file I/O I want to pack the code which is needed during start up to sequential pages. This should significantly reduce file I/O and help start up performance. I want to create a little helper library which traces what symbols are used during startup. This file can be used with the help of another tool to find the mangled names in the map file. The mangled names must to be put into an order file which can be used by the Microsoft linker to reorder the code. cd_oo
Incremental save Trying to finish an incremental storage model for XML files. yugq
Speedup drawing I have submitted "downscaledimageshow " in CWS. Which can increase the drawing speed by using the downscaled bitmap of high-resolution images only to draw or "slide show" in the screen JackieSun
Asynchronous load Impress I'm fix the bugs of Asynchronous Loading zhangyuwei
Store refactoring

Buffered file I/O

Works on module 'store' refactorings for better startup performance; milestone 1 of these refactorings is in CWS mhu17, now nominated for integration. Also, I'm evaluating extensions to osl/file for buffered file I/O, similar to what Tora suggested. Maybe I can propose something next week. mhu
I/O issue I have no accomplishment on the task of performance improvements this week . tora-japan
Test load/save time with vtune Using a hash_map as basis of SfxItemPropertyMap/Set doesn't help for load/save performance. Alphabetical sorting of property names in xmloff in the past - which was required by the previous implementation - helped to prevent unnecessary string comparisons. I didn't yet compare the load/save times in Calc and Impress as it takes a lot of time to get data out of vtune. os_ooo
Wiki structure and project logo I am currently working on the wiki structure and on a project logo. I have added a frame on the top right of any performance related wiki page to give the project a visual identity and offer a project navigation to the user. The logo will be shown as soon as it becomes available. FrankL

URIs mentioned

Calc/Broadcasters (erAck created)

Ternary search trees (mhu mentioned)

Boost/spirit/symbols (erAck mentioned)

Svn/performance/trunk (liheng mentioned)


(16:32:09)liheng: The agenda of IRC Mar. 13th
(16:32:09)liheng: 1.Update overall status
(16:32:09)liheng: 2.Discuss how to organize the source tree in performance module
(16:32:09)liheng: * Move all tooling code into performance module
(16:34:19)liheng: I just finished the first version of test system, and will create CWS and update it next week...
(16:34:37)liheng: Some detail document will post on WIKI page
(16:35:10)erAck: I started investigating Calc's area broadcasters, see http://wiki.services.openoffice.org/wiki/Calc/Performance/Refactoring_Area_Broadcasters, but got interrupted by 3.1 blocker issues.
(16:37:28)sb: My status: Got substantial improvements of instructions burned in runtime loader on Linux through use of -Bsymbolic-functions/-Bsymbolic (issue 85679) together with latest GCC/binutils; now looking at whether those changes are indeed correct (esp. -Bsymbolic, which can cause different bindings be used for one data symbol across libraries).
(16:38:08)cd_oo: I want to pack the code which is needed during start up to sequential pages. This should significantly reduce file I/O and help start up performance. I want to create a little helper library which traces what symbols are used during startup. This file can be used with the help of another tool to find the mangled names in the map file. The mangled names must to be put into an order file which...
(16:38:10)cd_oo: ...can be used by the Microsoft linker to reorder the code.
(16:39:10)yugq: I'm trying to finish an incremental storage model for XML files.
(16:39:48)JackieSun: I have submitted "downscaledimageshow " in CWS. Which can increase the drawing speed by using the downscaled bitmap of high-resolution images only to draw or "slide show" in the screen
(16:39:49)zhangyuwei: I'm fix the bugs of Asynchronous Loading
(16:41:54)***mhu works on module 'store' refactorings for better startup performance; milestone 1 of these refactorings is in CWS mhu17, now nominated for integration. Also, I'm evaluating extensions to osl/file for buffered file I/O, similar to what Tora suggested. Maybe I can propose something next week.
(16:43:12)liheng: Okay, I also arrange a report of comparison between several officesuite products,it will post in WIKI in two weeks
(16:44:06)tora-japan: My status: I have no accomplishment on the task of performance improvements this week since I have been working on some macro functions such as StrConv(), MidB(), LenB(), the Excel's legacy macro functions. The functions have been successfully and experimentally implemented.
(16:45:22)os_ooo: My status: Using a hash_map as basis of SfxItemPropertyMap/Set doesn't help for load/save performance. Alphabetical sorting of property names in xmloff in the past - which was required by the previous implementation - helped to prevent unnecessary string comparisons. I didn't yet compare the load/save times in Calc and Impress as it takes a lot of time to get data out of vtune.
(16:46:53)erAck: os_ooo: maybe a perfect hashmap would help?
(16:47:21)liheng: os_ooo:We can help you to get the data in CH2000, you can tell how/where to do them.
(16:50:14)liheng: os_ooo:Do you need someone to help you get some compared data?
(16:50:32)liheng: os_ooo: Do you need someone to help you get some compared data?
(16:53:07)liheng: Okay, we go to next topic, How to organize the source tree in performance module.
(16:53:12)FrankL: My status: I am currently working on the wiki structure and on a project logo. I have added a frame on the top right of any performance related wiki page to give the project a visual identity and offer a project navigation to the user. The logo will be shown as soon as it becomes available.
(16:53:45)FrankL: Do plan to have something like a monthly status presentation? We make this in project Renaissance and this allows us to promote the outcome of the project. This is also something we can show the press to get some more visibility for the project.
(16:54:14)erAck: FrankL: present where to whom?
(16:54:49)FrankL: Virtually
(16:55:08)FrankL: Today it not that easy to get an overview about the current status of the project.
(16:55:42)mhu: os_ooo: your comment about "alphabetical sorting" reminded me of "ternary search trees" by Robert Sedgewick; search google/wikipedia for "ternary tree" or see http://www.cs.princeton.edu/~rs/strings/
(16:56:22)os_ooo: The code changes are in cws os128. So everybody who wants to create data can do that. At the moment I have only a few documents for Calc, Impress and Draw that I can use.
(16:58:27)liheng: os_ooo:Can you send the documents to me, email: liheng@redoffice.com
(17:00:05)liheng: FrankL:Do you want to do something like a status table of CWSes and works?
(17:00:16)liheng: : Do you want to do something like a status table of CWSes and works?
(17:00:18)os_ooo: liheng: You will get them in a minute.
(17:00:41)liheng: os_ooo: Thank you!
(17:01:00)FrankL: liheng: I think more like a status report for non technical people.
(17:02:06)liheng: FrankL: I see, it very important for UX test case definition.
(17:03:35)FrankL: liheng: I think it is important for all of us to have an overview about the improvements. Then we would have something were we can point interested people to.
(17:04:20)liheng: FrankL: Yes, and we can show some value about them:)
(17:04:57)liheng: 2nd topic is "How to organize the source tree in performance module".
(17:05:52)liheng: I think at first we can move all tooling code about performance to performance module, like RTL_LOG
(17:07:42)mhu: liheng: with 'performance module' you mean a (top level) directory 'performance' in OOo SVN repository, right ?
(17:08:04)liheng: Yes,
(17:08:18)mhu: okay
(17:09:20)mhu: ... I currently dont know of a better place; can we ask someone else, maybe Martin H. or Heiner R. ? should we ask at all ?
(17:10:18)liheng: Matthias: We have a repository of performance
(17:11:09)mhu: hmm, an own repository or with OOo svn repository ?
(17:11:14)liheng: it's own repository, which is not part of the other OOo repository.
(17:11:40)mhu: ahh, then all is fine, and I simply missed something ...
(17:12:17)liangjun: +1
(17:12:49)***mhu asks himself what the repository url might be, or where it can be found ...
(17:14:17)liheng: http://performance.openoffice.org/svn/performance/trunk
(17:15:00)erAck: os_ooo: boost's spirit library's class symbols uses a ternary search tree, see http://www.boost.org/doc/libs/1_38_0/libs/spirit/classic/doc/symbols.html
(17:17:09)erAck: liheng: that's not the OOo SVN repository, plus it needs an account and password?!?
(17:18:59)liheng: erAck:I use my account in OOo
(17:19:49)sb: What is the reason to have such an additional repository?
(17:20:07)liheng: erAck:You can check page http://performance.openoffice.org/source/browse/performance/
(17:20:14)***erAck tried OOo account and works.
(17:21:04)erAck: liheng: but I think we should use svn.services.oo.o instead.
(17:21:43)liheng: sb: All code of tools are only for benchmark or test OOo.
(17:22:21)erAck: it doesn't have to be the .../ooo repository there, as the code is not needed to build OOo, but .../performance or some such may do.
(17:22:53)sb: liheng: but why not use something like svn.services.openoffice.org/ooo/contrib/performance then?
(17:23:49)erAck: sb: I think it does not need to be in the main repository, no need to check it out just for building OOo.
(17:24:12)***mhu also tried OOo account and works, too.
(17:25:30)liheng: sb: I will confirm them with Dieter :)
(17:25:39)yugq: I think we can use that repository to store other files except the code. Such as some test report or related files.
(17:26:10)erAck: whoa, "Powered by Subversion version 1.4.3" ... a version we wouldn't even touch with a pair of pliers ;-)
(17:26:14)sb: erAck: that's why I wrote "/contrib/"
(17:26:15)yugq: I can see mt have performance-startup-2005 odt on it now.
(17:26:55)mhu: maybe Malte can tell some details when he is back from vacation next week
(17:27:00)erAck: sb: ah, ok, same repository but different branch; yes, might be best.
(17:27:39)liheng: Okay,that all :)
(17:27:39)yugq: mhu: yes! It seems Malte know this repository well:)
(17:27:54)mhu: yugq: :-)
(17:28:08)yugq: LiHeng: I will make up and publish the MM of this meeting.
(17:28:26)mhu: ...and yes, maybe a contrib branch maybe the method of choice
Personal tools