[Libreoffice] Mac Build with lang=ALL
Norbert Thiebaud
nthiebaud at gmail.com
Tue Jan 18 12:48:41 PST 2011
On Tue, Jan 18, 2011 at 1:35 PM, Michael Meeks <michael.meeks at novell.com> wrote:
> On Wed, 2011-01-12 at 10:47 -0600, Norbert Thiebaud wrote:
>> indeed it is a dog. it took 15h20.
>> conservatively at least 13 hours of it were in helcontent2, mostly I/O
>> bound creating temp files and copying things around over and over.
[..]
>
> A huge win. Personally, I find it hard to believe that the problem is
> not I/O related
Well as I said above, it _IS_ I/O related, no doubt about that.
> - ie. to do something -that- slow, a file-system has to
> fsync (ie. physically move the disk heads) I imagine, I don't think much
> else can explain it. Out of interest how fast is:
>
> mkdir /tmp/small ; time for (( a=1; a<=10000; a++ )) do touch /tmp/small/$a; rm /tmp/small/$a; done
>
> for you ? I get 22 to 26 seconds (on my two test machines), one has
> an SSD, the other a hard-disk, but you can see that neither write anything
> to the disk in that time.
real 0m30.254s
user 0m5.720s
sys 0m25.907s
on my mac (note: doing this in a ram_disk give about the same result)
real 0m20.760s
user 0m2.974s
sys 0m18.205s
on my linux
but that does not measure much since
mkdir /tmp/small ; time for (( a=1; a<=10000; a++ )) do touch
/tmp/small/$a; done
real 0m17.662s
user 0m3.012s
sys 0m15.115s
time cp -r /tmp/small /tmp/small2
real 0m2.508s
user 0m0.119s
sys 0m2.256s
n_th at tpamac ~ $time rm -fr /tmp/small2
real 0m1.000s
user 0m0.014s
sys 0m0.808s
So the test you give is more about measuring bash and fork speed than
anything else
>
> So - I'm simply surprised that a ramdisk makes much difference.
>
> I was suspicious of the database / lucene building piece - which may
> well do fsyncs, and write a journal to try to ensure data integrity, I
> can believe that is horribly slow.
That is a distinct possibility. but the speed-up is there even for the
part that are not running lucene. (based on the cpu-load - io/load
monitoring while building on regular disk or on ramdisk)
for info
time for (( a=1; a<=1000; a++ )) do touch
/Volumes/ccache_ramdisk/xx$a; sync; rm /Volumes/ccache_ramdisk/xx$a;
sync; done
real 6m37.891s
user 0m1.448s
sys 6m33.465s
note: is 1,000 not 10,000 and it is the same order of magnitude when
using 'real' disk
Note: I'm building is -P6 -- -P6, that may also have an impact. some
I/O pattern involved may dog badly in a heavy
multi-threaded/multi-processed environment...
(yeah, yeah... on paper that sound crazy high, but in practice 6/6
give me the best result on this machine)
Norbert
>
>> Note: that if you do not have enough memory to do that, you could at
>> least move the TMPDIR do a ramdisk. you don't need a big one (not sure
>> exactly how much, but I bet 500M should probably do)
>> there are some step in helpcontent2 that do a LOT of creation/delete on TMP.
>
> Right; I guess it might be nice to have an 'strace -f -ttt' log (or Mac
> equivalent) of a few minutes of the build - to see what is going on.
>
> Thanks !
>
> Michael.
>
> --
> michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot
>
>
More information about the LibreOffice
mailing list