[Issue 13193] Extreme slowdown in compilation time of OpenSSL in Tango for optimized build
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sat Jul 26 14:27:50 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=13193
Nils <nilsbossung at googlemail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |nilsbossung at googlemail.com
--- Comment #3 from Nils <nilsbossung at googlemail.com> ---
(In reply to Walter Bright from comment #1)
> Any chance of a reduced test case?
Here you go.
2.065 finishes in less than 0.1 seconds on my system.
2.066.0-b5 takes over 7 seconds.
When the code is all in one module, 2.065 is just as slow.
---
cat > SharedLib.d << code
module SharedLib;
final class SharedLib {
void getSymbol() {return getSymbolImpl();}
void getSymbolImpl() {return getSymbol_();}
/* add more intermediate functions to go slower */
void getSymbol_() {}
}
code
cat > OpenSSL.d << code
module OpenSSL;
import SharedLib;
SharedLib ssllib;
void bindFunc() {ssllib.getSymbol();}
void bindCrypto()
{
bindFunc(); /* add more of these to go slower */
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc(); /* 10 */
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc(); /* 20 */
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc(); /* 30 */
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc(); /* 40 */
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc(); /* 50 */
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc(); /* 60 */
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc(); /* 70 */
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc(); /* 80 */
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc(); /* 90 */
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc();
bindFunc(); /* 100 */
}
code
time dmd -c -inline -O OpenSSL.d
---
--
More information about the Digitalmars-d-bugs
mailing list