http://bugs.winehq.org/show_bug.cgi?id=20999
Summary: Rome Total War Gold: installation slow Product: Wine Version: 1.1.34 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: minor Priority: P2 Component: ole32 AssignedTo: wine-bugs@winehq.org ReportedBy: drakkk@centrum.cz CC: madewokherd@gmail.com
Created an attachment (id=25181) --> (http://bugs.winehq.org/attachment.cgi?id=25181) console output
With current git (wine-1.1.34-309-g9352509), Rome Total War Gold Edition installs about 3 hours and it used to install in 5-10 minutes. Regression test showed this:
62e54bacba086cf279936c28f75942c019b887cd is the first bad commit commit 62e54bacba086cf279936c28f75942c019b887cd Author: Vincent Povirk vincent@codeweavers.com Date: Mon Nov 30 10:35:55 2009 -0600
ole32: Use the storage vtable to read streams.
:040000 040000 ec8e0d1f89bd2495e10ee67a15055cf0479e4bd7 0e72a3e9e855e7d07d448bdbeef64818f4deb3ea M dlls
http://bugs.winehq.org/show_bug.cgi?id=20999
Pavel Ondracka drakkk@centrum.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Installer, regression
http://bugs.winehq.org/show_bug.cgi?id=20999
--- Comment #1 from Vincent Povirk madewokherd@gmail.com 2009-12-12 12:31:17 --- Thanks for taking the time to report and bisect this bug. I was afraid of something like this, and it's good that you have a testcase.
By moving implementation details out of the storage IStream implementation, I lost the persistent BlockChainStream/SmallBlockChainStream objects that had been attached to them. These objects had been saving some useful information that we now have to read again from the file each time there's a read or write on the stream.
The way we kept these details in IStream was unsafe because we could have two IStream objects for a single stream, each one maintaining its own cache (which can become invalid if the other modifies the stream). So I think StorageImpl needs to track this information somehow. StorageImpl can do it safely because it sees all changes.
I should have some patches within the week, and I'd appreciate if you could test them. It's hard to tell which optimizations will be helpful and which ones just add useless complexity.
http://bugs.winehq.org/show_bug.cgi?id=20999
--- Comment #2 from Vincent Povirk madewokherd@gmail.com 2009-12-14 12:00:00 --- Created an attachment (id=25207) --> (http://bugs.winehq.org/attachment.cgi?id=25207) patch 1 - cache directory entries
http://bugs.winehq.org/show_bug.cgi?id=20999
--- Comment #3 from Vincent Povirk madewokherd@gmail.com 2009-12-14 12:00:20 --- Created an attachment (id=25208) --> (http://bugs.winehq.org/attachment.cgi?id=25208) patch 2 - cache block chain streams
http://bugs.winehq.org/show_bug.cgi?id=20999
--- Comment #4 from Vincent Povirk madewokherd@gmail.com 2009-12-14 12:05:18 --- Could you test the attached patches?
I'd like to know: * Does patch 1 on its own do any good? * Does applying patch 2 on top of patch 1 do any good?
I'm expecting them both to help, but the second adds some complexity I don't like so I'm hoping it won't.
http://bugs.winehq.org/show_bug.cgi?id=20999
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |susancragin@earthlink.net
--- Comment #5 from Vitaliy Margolen vitaliy@kievinfo.com 2009-12-15 01:26:12 --- *** Bug 21016 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=20999
--- Comment #6 from Pavel Ondracka drakkk@centrum.cz 2009-12-15 02:26:08 --- (In reply to comment #4)
- Does patch 1 on its own do any good?
No, it doesn't. Installation time: 3:20.
- Does applying patch 2 on top of patch 1 do any good?
Yes, now it installs in 11 minutes. It may be still a little bit slower then before (9 minutes with 1.1.34), but i did measure it only once, so there may some random deviation? If you want to know exactly how slower/faster it is I can measure it more then once and more precisely. However this speed is definitely acceptable now. Thank you for your patches.
http://bugs.winehq.org/show_bug.cgi?id=20999
Vincent Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Rome Total War Gold: |installations that were |installation slow |fast in 1.1.34 are very | |slow now due to ole32 | |storage changes
http://bugs.winehq.org/show_bug.cgi?id=20999
--- Comment #7 from Vincent Povirk madewokherd@gmail.com 2009-12-16 11:32:54 --- This should be fixed by 393c5af205c5b25a50e0b2d06a5889162286abf2.
http://bugs.winehq.org/show_bug.cgi?id=20999
--- Comment #8 from Susan Cragin susancragin@earthlink.net 2009-12-16 12:51:10 --- I can confirm for Dragon NaturallySpeaking. Today's git (16-Dec) installs well.
http://bugs.winehq.org/show_bug.cgi?id=20999
Vincent Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #9 from Vincent Povirk madewokherd@gmail.com 2009-12-16 13:04:39 --- Reported fixed.
http://bugs.winehq.org/show_bug.cgi?id=20999
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org 2009-12-18 13:08:18 --- Closing bugs fixed in 1.1.35.