linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #02636
[Bug 250149] Re: Retry on more possible Coral errors
"Premature optimization is the root of all evil" - Don Knuth
This is a pretty contrived example. I would argue that neither of the
two options presented are optimal for your particular example. My method
3 from the attached program is actually shown to be faster since here
the clearing is redundant. See, it's easy to make a point with a random
example. ;)
However, just because something is nanoseconds faster doesn't mean it is
the best solution. I would argue that code readability and
maintainability are usually more important. For this reason, I would
suggest that method 4 is the preferred approach out of the 4 even though
it is the second to last in speed. The reason for this is that it
reduces the scope of the string to inside the loop where it belongs
(RAII) and has the clearest intent. This applies to variables re-used
within a loop. For class member strings that are re-used within multiple
methods and can't be made local variables I would probably agree that
clear() has the best readability. But in all cases the decision should
be made based upon readability and maintainability versus an
infinitesimal saving in speed.
Output of test2:
method 1: 260000
method 2: 670000
method 3: 180000
method 4: 590000
** Attachment added: "test2.cpp"
https://bugs.launchpad.net/dcplusplus/+bug/250149/+attachment/1753755/+files/test2.cpp
--
You received this bug notification because you are a member of
Dcplusplus-team, which is subscribed to DC++.
https://bugs.launchpad.net/bugs/250149
Title:
Retry on more possible Coral errors
Status in DC++:
In Progress
Bug description:
From 0.707 it retiries automatically if the Coral network is not connectable. However, there's still a problem when a transfer fails from Coral or if a Coral server responds with a HTTP error. Devs of DC++ mods also reported this problem, adding that either all kinds of Coral errors should be handled or it should be disabled by default in the further releases. Here is a patch that solves the rest of the problems. Also it seems that the problem when Coral network overloaded so it redirected to a page informing about the network problems is changed. It gives HTTP 503 - Service unavailable for some time, so with the patch this shoud be handled as well.