[Bug 31438] [EA Origin]Unable to download game since the new version
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Mar 28 05:02:01 CDT 2014
http://bugs.winehq.org/show_bug.cgi?id=31438
--- Comment #122 from Heiko <lil_tux at web.de> ---
(In reply to Alessandro Pignotti from comment #121)
> I agree the docs says that TcpSockets should always be buffered, but this
> does not seem to be true. They definitely are buffered by default, but for
> HTTP connection the mode is changed in
> QHttpNetworkConnectionChannel::ensureConnection. You can see that when the
> connection is not SSL based it will pass the QIODevice::Unbuffered flag to
> the connectToHost call.
>
Damn, I should've seen that. Thanks for your insights and hinting. That 'new'
feature of Qt. There's even a statement...
"
// Before Qt 4.6, we always set the send and receive buffer size to 49152
as
// this was found to be an optimal value. However, modern OS
// all have some kind of auto tuning for this and we therefore don't set
// this explictly anymore.
// If it introduces any performance regressions for Qt 4.6.x (x > 0) then
// it will be put back in.
//
// You can use tests/manual/qhttpnetworkconnection to test HTTP download
speed
// with this.
//
// pre-4.6:
// setReceiveBufferSize(49152);
// setSendBufferSize(49152);
"
Ok, your words are awesomely correct. Sorry for not believing at first. For now
I've got another workaround: patch Qt5Network.dll
Basically you just need to change byte 518626 from 0 to 1. That makes the
QTcpSocket buffered again. Download speed went to 1,6MB/s.
>> cmp -bl Qt5Network.dll.orig Qt5Network.dll.patched
518626 0 ^@ 1 ^A
Still does feel wrong to me to repeatedly pull 1 byte from the socket (and to
write QTcpSocket is always buffered into the doc).
So, kudos to Alessandro for really figuring the cause. Thanks!
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list