Performance/Meetings/2007 11

From Apache OpenOffice Wiki
< Performance‎ | Meetings
Revision as of 02:15, 26 August 2009 by Penny (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Performance/Meetings/2007/11/29

Meeting Minutes
IRC Meeting of Sun Microsystems (StarOffice) with RedFlag2000
Performance Project


Date: 2007/11/29
Time: 16:13– 18:05
Meeting No.:


Agenda:

(16:13:33) LiHeng: good afternoon
(16:13:36) xiuzh1: hello,afternoon
(16:14:24) LiHeng: we prepare a agenda
(16:14:55) LiHeng: Sun team introduce what they did for performance before.What tools we needHow to start profile and how to share the profile results
(16:14:56) xiuzh1: prepare or prepared?
(16:15:27) LiHeng: you must select some item:)
(16:15:44) LiHeng: Sun team introduce what they did for performance before
(16:15:45) LiHeng: What tools we need
(16:15:53) LiHeng: How to start profile and how to share the profile results
(16:16:16) LiHeng: How to we analysis the problem from the enduser
(16:16:24) LiHeng: that's all
(16:17:16) xiuzh1: good, It would be better if you email this agenda to the guys from sun now,they can prepare something for it
(16:17:49) LiHeng: please help us to select items
(16:18:03) xiuzh1: ok,
(16:20:33) LiHeng: (+o xiuzh1)
(16:20:36) LiHeng: ?
(16:20:39) xiuzh1: have done
(16:20:59) LiHeng: how to change your mode?
(16:21:24) xiuzh1: input:"/op xiuzh1"
(16:21:33) kuangliang: ??
(16:21:46) xiuzh1: LiHeng:thanks
(16:21:58) LiHeng: xiuzh1:you are welcome
(16:22:01) LiHeng: :)
(16:24:17) LiHeng: xiuzhi : we will recommend the 4 items to the meeting agenda today , right?
(16:25:12) xiuzh1: LiHeng: I have sent your agenda to them,
(16:25:38) LiHeng: xiuzh1:thank you !
(16:26:01) xiuzh1: LiHeng:If they have more topics, they will have a proposal
(16:27:40) YuGuoqiang: Malte: Good morning!
(16:27:51) xiuzh1: LiHeng: I read the "please help us to select items" as "please help us to send items",so I sent them, :-P
(16:28:07) Malte_: Hi! :)
(16:28:30) LiHeng: Hi Malte !
(16:28:51) liangjun: Hi Malte ! Good morning !
(16:29:16) xiuzh1: Malte_:morning
(16:29:40) kuangliang: Malte morning!
(16:29:43) xiuzh1: Malte_: where is Matthias H.?
(16:30:05) Malte_: Don't know, let's wait...
(16:31:42) xiuzh1: Malte_: and mba?
(16:31:49) Malte_: I try to call them...
(16:32:09) LiHeng: Malte_:thank you!
(16:33:10) Malte_: MBA will be here soon, no idea about MHU...
(16:34:02) LiHeng: mba:morning!
(16:34:09) kuangliang: Hi mba
(16:34:17) LiHeng: mhu:morning!
(16:34:17) kuangliang: Hi Matthias Huetsch
(16:34:18) mba: Good afternoon. :-)
(16:34:28) mhu: Hi all, sorry for being late.
(16:34:35) Malte_: OK, I think we simply start without MHU then...
(16:34:38) YuGuoqiang: mba, mhu: Good morning!
(16:34:39) xiuzh1: LiHeng: your agenda, please
(16:34:59) LiHeng: xiuzh1:ok
(16:35:09) mhu: Malte_: but I'm already here :-)
(16:35:26) Malte_: Uuups ;)
(16:35:55) LiHeng: mhu:we prepared a agenda
(16:36:14) LiHeng: Agenda from our side:
(16:36:21) mhu: LiHeng: agenda is good, would you like to start?
(16:36:21) LiHeng: 1.Sun team introduce what they did for performance before
(16:36:30) LiHeng: 2.What tools we need
(16:36:38) LiHeng: 3.How to start profile and how to share the profile results
(16:36:43) LiHeng: 4.How to we analysis the problem from the enduser
(16:37:10) LiHeng: mhu:thanks, let's go! :)
(16:37:32) xiuzh1: mhu: Do you have other topics need to discuss?
(16:38:13) mhu: I think, the topics are fine. I would probably change the order, though.
(16:39:11) Malte_: OK, I tell about the past...
(16:39:13) mhu: what I mean, is that I would start with where the problem is (ask end user), then start profiling that problem.
(16:40:08) Malte_: When we started to work on OOo2, we didn't care for performance, and suddenly realized that start-up and load/save was really slow compared to OOo1.1
(16:40:31) Malte_: So we analyzed startup with help of profilers and our RTL_LOG feature
(16:40:55) Malte_: Both gave us some hints about expensive operations in startup and load/save
(16:41:19) xiuzh1: Malte_:good topic,
(16:41:24) Malte_: Some could be eliminated (start-up) by dothing stuff on demand only
(16:41:49) Malte_: Which means: Don't do/init things in startup when you don't need them immediately!
(16:42:05) Malte_: So some things are done on demand, or at least "lazy" now.
(16:42:28) Malte_: With lazy meaning, using some timer and do stuff when startup is done.
(16:42:48) Malte_: We also figured out many expensive stuff in out XML configuration, and fixed that
(16:43:06) Malte_: Load/Save is/was more difficult...
(16:43:06) LiHeng: Malte_: good idea
(16:43:28) Malte_: Our XML processing is not done in an optimal way becuase of how we use the existing office API.
(16:43:48) Malte_: That API is good for programming OOo, but for load/save we can imagine better API
(16:44:12) Malte_: We already have one in mind, but adapting this is a LOT of work....
(16:44:43) Malte_: But we where able to make improvements for load/save on other places, in the application cores
(16:44:50) mhu: Thanks Malte, but the introduction looks incomplete to me. I have been working on (cold) startup with Michael Meeks for OOo2.0, but others made it slower than we could make it faster :-(
(16:44:52) LiHeng: Malte_:XML API is good ,but we have to change some implementation
(16:45:14) Malte_: Right, that's the export optimizations :)
(16:45:22) Malte_: I meant MHU...
(16:45:32) Malte_: LiHeng: Sure.
(16:45:59) Malte_: But sometimes you can not simply change implementation, in this case you probably have to use a different API same time...
(16:46:14) Malte_: But before discussing this, let's clarify with what you want to start!
(16:46:25) Malte_: I doubt you want to start both areas in parallel...
(16:47:14) Malte_: IMHO you have to choose between startup or load/save now, what to do FIRST.
(16:48:01) mhu: I still have the idea to start with a concrete end-user problem, analyze that, and possibly fix it.
(16:48:34) Malte_: Sure - but do we really have other end user problems? LiHeng?
(16:49:13) LiHeng: CH2000 have some report about performance from end-user
(16:49:16) xiuzh1: OK,
(16:50:04) mhu: LiHeng: can we share your report with Malte_ and mba?
(16:51:02) LiHeng: mhu:Yes, i will send a email to them\
(16:51:51) LiHeng: mhu:maybe we can return to agenda :)
(16:52:07) mhu: LiHeng: thanks. can we also make a systematic analysis of that report? I mean, look what the common problems are?
(16:52:34) mhu: LiHeng: okay, let's return to agenda.
(16:53:26) LiHeng: mhu: change the order , first How to we analysis the problem from the enduser ,right?
(16:53:58) xiuzh1: LiHeng: You can paste them on http://pastebin.ca
(16:54:01) mhu: LiHeng: Maybe I can continue the things that Sun did, first?
(16:54:31) LiHeng: mhu:ok!
(16:54:45) mhu: LiHeng: thanks, so...
(16:55:46) mhu: What I did (with Michael Meeks of Novell) was to analyze the difference between cold and warm startup...
(16:56:49) mhu: cold startup means, for example first start after boot of machine, when all libraries need be read from disk (not in cache)...
(16:57:13) LiHeng: I see
(16:57:33) mhu: for cold startup mainly the number and size of shared libraries matters...
(16:58:27) mhu: to reduce size of shared libraries, we restricted number of exported function symbols and removed unused code (not much so far)...
(16:59:36) mhu: also, for unix, we introduced a 'pagein' program into the startup that 'pages in' the libraries (sequential disk read, instead of demand paging)...
(17:00:42) mhu: all in all, for cold start, I/O wait time is ~80% of the time, that is 5 times slower than warm start...
(17:01:42) mhu: also, number and size of libraries loaded: as Malte said, we tried to avoid to load everything at startup...
(17:02:13) xiuzh1: mhu: that also what we want to do
(17:02:37) LiHeng: mhu:the number 80% is also got by YuGuoqiang,too
(17:02:40) mhu: and, what needs to be loaded shall be small, for example we split off an 'cui.dll' (from svx) and 'swui.dll' from sw, and so on. That's is for now.
(17:03:30) kuangliang: MHU:Can we delete it?
(17:03:40) mhu: Can we delete what?
(17:03:41) YuGuoqiang: :)
(17:04:00) kuangliang: Split's dll?
(17:04:05) LiHeng: kuangliang: what do you want to delete?
(17:04:21) kuangliang: for example 'cui.dll'
(17:04:49) mhu: we can't delete it, we only avoid loading it right at startup.
(17:05:15) liangjun: MHU:can we load it when it is used?
(17:05:25) mhu: cui.dll contains Tools->Options dialog for example. Not needed during start, but still.
(17:05:42) mhu: liangjun: yes, that is the idea: load we needed.
(17:05:50) YuGuoqiang: liangjun:What you said is lazy loading.
(17:05:50) kuangliang: yes
(17:05:58) mhu: yes
(17:06:05) liangjun: yes
(17:06:54) liangjun: I think some soft used plugin? can we use it ?
(17:07:44) kuangliang: I think when OO startup some configuration files are accessed several times ,Can we control it?
(17:07:47) mhu: plugin? you mean for not yet used functionality? yes, but you first need to separate that functionality
(17:08:03) LiHeng: mhu:the important thing is removed unused code
(17:08:26) mhu: LiHeng: yes, that is a good idea.
(17:08:43) LiHeng: it's major cause in performance
(17:09:06) LiHeng: we can do it module by module
(17:09:07) mhu: We once started a small project to identify unused code. I don't know it's status.
(17:09:33) YuGuoqiang: I think lazy loading and reduce the binaries' size are both good ideas, and I want to know it's how good for optimization result.
(17:10:01) mhu: LiHeng: but you can ask Stefan Zimmermann for this code analysis project (and remove unused code). He was involved.
(17:11:22) LiHeng: mhu:OK! And can we make suggestion for other project to reduce some object
(17:11:35) mhu: I still have the idea that the real problem is not to improve startup by say 10% but by a factor of 10, and we should analyze the real problem first.
(17:12:25) mhu: LiHeng: yes, the reduction of size is always good.
(17:12:32) xiuzh1: mhu:I think so
(17:12:43) LiHeng: mhu:I think so
(17:12:55) mhu: Okay, thanks :-)
(17:13:17) LiHeng: ok, do next item?
(17:13:34) mhu: yes, i'm finished for now.
(17:13:56) LiHeng: second : What tools we need?
(17:14:35) kuangliang: Can we analyze OO by Sun Stdio?
(17:14:39) YuGuoqiang: LiHeng: How about mba? He/She did not talk about what he/she did before.
(17:15:14) mba: Our work was mainly related to supporting Matthias in his effort to get less code loaded on startup
(17:15:16) LiHeng: Matle_:you have already built some tools for monitor and profile, can you introduce them ?
(17:15:46) mba: So we coordinated and did the work that effectively removed several MB of code from that being loaded on startup.
(17:16:22) Malte_: I have tools for measuring, not for profiling.
(17:16:44) Malte_: This tool will measure startup and load/save of some tests docs.
(17:16:46) mhu: kuangliang: yes, partly SunStudio can help also. More on Solaris 10 or OpenSolaris (Solaris 11) with 'dtrace' support.
(17:17:02) Malte_: Optionally, it can do so for 2 versions of OOo, so you can compare them.
(17:17:18) Malte_: This is very helpful to check if your optimizations really helped here.
(17:17:33) LiHeng: Malte_: How can we get these tools?
(17:17:35) Malte_: Because - the profiler sometimes tricks you ;)
(17:17:56) Malte_: You think changing something makes a big differnce, but in reality, it doesn't :(
(17:18:08) kuangliang: MHU:Thanks !And do you do anything by this way?
(17:18:12) Malte_: This tool: I can send to you.
(17:18:31) mhu: Yes, sometimes a simple wall-clock is sufficient for measurements.
(17:18:36) Malte_: For some reason, only the Java binaries, no source right know, and not for making public on OOo right now.#
(17:18:38) LiHeng: Malte_:I know it , but we need the profiling to make deeply analyze
(17:19:04) Malte_: But you can configure it via config files, so you can change the measure points...
(17:19:18) Malte_: Getting profilers is up to you.
(17:19:24) Malte_: I used Intel VTune on Windows
(17:19:32) Malte_: It's around $600, I think.
(17:19:52) Malte_: You can download a trial version, with the resctriction that you can NOT save the results then
(17:20:05) Malte_: On Linux you can use Valgrind.
(17:20:11) Malte_: I didn't try it myself.
(17:20:19) Malte_: It's free, but probably harder to use.
(17:20:27) LiHeng: we will try to use Valgrind first
(17:20:29) mhu: kuangliang: sometimes I work on solaris with 'dtrace', more often manually observing things than using SunStudio. In my experience, much of this work is manual anyway (and thinking :-) ).
(17:20:44) Malte_: DTRACE is a very good choice!
(17:21:01) Malte_: But when I worked on performance, it was not available, came in late in the game
(17:21:14) kuangliang: MHU:ok
(17:21:38) Malte_: DTRACE might be hard to use, but should be very accurate, with powerful features
(17:21:56) mhu: Yes, dtrace was not yet finished when we worked on OOo2.0
(17:22:25) kuangliang: In
(17:22:33) Malte_: Using RTL_LOG (OOo source code feature) is also very helpful.
(17:22:36) mhu: Most tools are hard to use, because they produce too much data.
(17:22:40) Malte_: My tests are based on that.
(17:22:45) Malte_: See http://wiki.services.openoffice.org/wiki/Performance => RTL_LOG
(17:23:36) Malte_: BTW - the mentioned "Malte - we should really have your list embedded here ..." is this one:
(17:23:37) xiuzh1: Malte_: can dtrace used on Linux platform?
(17:23:47) Malte_: http://tools.openoffice.org/performance/performance-activities-overview.html
(17:24:03) Malte_: xiuzh1: IMHO - no.
(17:24:07) mhu: No, currently 'dtrace' is still a Solaris only feature.
(17:24:18) Malte_: But OpenSolaris is free!
(17:24:35) LiHeng: mhu: We will try to use the DTrace and Valgrind to profile the current version openoffice and make a report to expound the problem in our mind, and please help us to get the tools to measure that made by Malte
(17:24:44) mhu: But rumours say, that Apple is including dtrace in MacOSX (I think FreeBSD already has it).
(17:24:45) YuGuoqiang: How about gprof?
(17:24:45) Malte_: BTW - Sun Studio on Solaris is also much better than any Linux Debugger
(17:25:25) kuangliang: yes
(17:25:38) mhu: The latest SunStudio is also free, and works on Linux. But I have not yet tested it on Linux.
(17:26:20) LiHeng: mhu: We will try to use the DTrace and Valgrind to profile the current version openoffice and make a report to expound the problem in our mind, and please help us to get the tools to measure that made by Malte
(17:26:30) mhu: LiHeng: yes, we will help you getting the tools, and also with testing them.
(17:26:58) LiHeng: mhu: thank you very much
(17:27:41) LiHeng: mhu: should we do next step?
(17:27:49) mhu: LiHeng: you and your team can send email to me when and where you have a problem. When I cant answer, I'll ask Malte.
(17:28:56) mhu: LiHeng: next step? is not the time over for today?
(17:28:58) liangjun: mhu: think you .
(17:29:29) Malte_: One suggestion:
(17:29:32) mhu: LiHeng: what was the next step, that you wanted?
(17:29:44) Malte_: Instead of IRC meetings - wouldn't email be sufficient?
(17:29:53) LiHeng: mhu: ok we do next step next week?
(17:30:19) mhu: LiHeng: Okay for me, or, as Malte said, via email?
(17:30:52) mhu: LiHeng: But I can continue with IRC one hour a week.
(17:31:39) LiHeng: mhu,matle: ok , we can do a lot of thing in email, but we can continue with IRC
(17:32:19) mhu: LiHeng: fine. So make plan via IRC, do work via email?
(17:32:37) Malte_: MBA and me would prefer to do email ONLY...
(17:33:06) Malte_: Better exchanging mails every day when needed, then one fix meeting
(17:33:44) mhu: Okay, I would then ask Malte and mba to help, when we need them, okay?
(17:33:53) LiHeng: Matle_:can we do a meeting two weeks
(17:36:02) Malte_: That means: 2 more IRC before stopping IRC, or IRC every two weeks?
(17:36:05) LiHeng: Matle_: need discuss together
(17:36:09) mhu: LiHeng: we can do IRC every week, no problem for me. we ask others to join when we think we need them, okay?
(17:36:31) Malte_: Sounds good for me :)
(17:36:56) Malte_: Which remembers me that some of you wanted to send minutes from last meeting ;)
(17:36:57) xiuzh1: once a week is ok to discuss the requirement at the first several meetings.
(17:36:59) LiHeng: mhu:Okay for me
(17:37:44) mhu: LiHeng, xiuzh1: okay, thank you.
(17:37:52) xiuzh1: one hour per IRC meeting is OK, I think
(17:38:15) LiHeng: kuangliang :can you make the meeting minutes ?l
(17:38:56) mhu: LiHeng: shall I send the IRC log again, or do you have that already?
(17:39:20) LiHeng: mhu: yes, i have
(17:39:37) LiHeng: mhu: and thank you
(17:39:58) kuangliang: yes
(17:40:17) LiHeng: Thanks to everybody, and that's all
(17:40:26) mhu: Okay, thank you.
(17:40:57) Malte_: Bye :)
(17:41:01) xiuzh1: I have a news about the OOo code dump testing
(17:41:09) LiHeng: Bye Malte
(17:41:14) mhu: xiuzh1: yes?
(17:41:15) kuangliang: bye
(17:41:18) xiuzh1: not relationed to performance
(17:41:22) YuGuoqiang: bye
(17:41:27) liangjun: bye
(17:41:33) LiHeng: xiuzh1:tell us
(17:42:15) mhu: xiuzh1: I have a few minutes more time, please tell
(17:42:33) xiuzh1: There is a test report from Chinese CSIP. They have measured the classes of writer and sc,
(17:42:46) xiuzh1: they want to submit the report
(17:43:04) xiuzh1: who will they email ?
(17:43:46) mhu: Maybe Stefan? As I said, he was involved in a code analysis project here also.
(17:43:51) xiuzh1: they worked with klocwork
(17:44:38) LiHeng: xiuzh1:klocwork?
(17:44:52) mhu: But I can receive that report also, if you want.
(17:45:14) xiuzh1: LiHeng:yes
(17:45:20) xiuzh1: mhu: OK
(17:45:31) xiuzh1: I will email you
(17:45:35) LiHeng: xiuzh1:and i want to get a copy
(17:45:51) mhu: okay.
(17:45:52) xiuzh1: any other people needed?
(17:46:19) YuGuoqiang: xiuzhi: Please give me a copy also, thanks!
(17:46:32) xiuzh1: maybe mba need one
(17:46:38) mhu: let me look at the report first, then probably mba (mathias bauer) for sw and nn (niklas nebel) for sc.
(17:46:50) xiuzh1: OK
(17:46:51) liangjun: xiuzhi:and me .thanks!
(17:46:58) Malte_: And I just for my interest ;)
(17:47:35) mhu: okay, I need to leave now. Are we finished?
(17:47:39) xiuzh1: ok,
(17:47:40) xiuzh1: bye
(17:47:59) LiHeng: mhu:yes ,and next week same time?
(17:48:00) Malte_: Bye - again... ;)
(17:48:15) mhu: same time, next thursday, yes.
(17:48:33) mhu: good bye
(17:48:44) LiHeng: bye
(17:48:47) liangjun: bye
(17:51:17) xiuzh1: LiHeng: are you there?
(17:52:10) kuangliang: xiuzhi: i'm liheng
(17:52:59) mba: bye


Go back

Personal tools