Commenting out a print slows my code?
Charles McAnany
mcanance at rose-hulman.edu
Wed Mar 9 16:44:16 PST 2011
Hi, all. I'm in college, taking a freshman-level CS class. (I'm actually a
senior chemist with free time.)
Anyhoo, the warm-up assignment was Hardy Taxi problem, phrased like this:
[Exposition removed.] 1729 is the smallest number such that for
(a!=b!=c!=d)>0, there exists a combination of a, b, c, and d where a^3+b^3 =
1729 = c^3+d^3.
The task was to find all other numbers with this property less than 25,000.
The code is basically
for (int iters = 1; iters <= 25_000; iters++){
if(isTaxiNumber(iters)){
writefln("%s is a taxi number", iters);
}
}
(There's also a StopWatch timing things, and isTaxiNumber returns a struct,
not a bool. See attached code.)
This code runs in about 0.09 seconds.
If I comment out the writefln, it takes 0.11 seconds.
(These are collected from about 20 runs of each. Times are very consistent.)
Any ideas why commenting out the write makes things slower?
Cheers,
Charles.
begin 644 taxi.d
M:6UP;W)T('-T9"YD871E=&EM93L at +R\@9F]R('1H92!3=&]P5V%T8V@@<W1R
M=6-T+B`-"FEM<&]R="!S=&0N<W1R:6YG.R`O+V9O<B!T:&4 at 9F]R;6%T*"DN
M(`T*:6UP;W)T('-T9"YS=&1I;SL at +R]P<FEN=&EN9RX@#0HO+R\@02!S=')U
M8W0@=&AA="!R97!R97-E;G1S(&$@8V%B+B!)="!D;V5S;B=T(&1O('1H92!C
M:&5C:VEN9R!T:&%T('1H92!O;F4@:6X@=&AE(&%S<VEG;FUE;G0 at 9&]E<RP@
M=&AO=6=H+B`-"G-T<G5C="!T87AI0V%B>PT*"6EN="!T87AI3G5M8F5R.PT*
M"6EN="!A+"!B+"!C+"!D.PD-"@ES=')I;F<@=&]3=')I;F<H*7L-"@D)<F5T
M=7)N(&9O<FUA="@B8V%R("5S(#T at 6R5S("5S("5S("5S72(L=&%X:4YU;6)E
M<BP at 82P@8BP at 8RP@9"D[#0H)?0T*?0T*#0HO*BH-"BH at 4')O9W)A;2!T:&%T
M(&UE87-U<F5S('1H92!T:6UE(&ET('1A:V5S('1O(&1E=&5R;6EN92!T:&4@
M=&%X:2!N=6UB97)S(&QE<W,@=&AA;B`R-3`P,"X@#0HJ($%U=&AO<CH at 0VAA
M<FQE<R!-8T%N86YY#0HJ#0HJ+PT*=F]I9"!M86EN*"E[#0H)4W1O<%=A=&-H
M('-W.PT*"7-W+G-T87)T.PT*"69O<B`H:6YT(&ET97)S(#T@,#L@:71E<G,\
M(#(U,#`P.R!I=&5R<RLK*7L-"@D)=&%X:4-A8B!C86))1"`](&ES5&%X:2AI
M=&5R<RD[#0H)"6EF*&-A8DE$+F,@(3T@,"E[#0H)"0EW<FET96QN*&-A8DE$
M*3L-"@D)?0T*"7T-"@ES=RYS=&]P.PT*"51I8VMS('1I;65486ME;B`]('-W
M+G!E96L[#0H)=W)I=&5F;&XH(B5S7'0E<R(L,C4P,#`L=&EM951A:V5N+G1O
M4V5C;VYD<R%F;&]A="D[#0H)<W<N<F5S970[#0H-"GT-"@T*+RHJ#0HJ(&ES
M5&%X:2!D971E<FUI;F5S(&EF(&%N(&EN=&5G97(@<&%S<V5D('1O(&ET(&ES
M(&$@=&%X:2!N=6UB97(L('1H870@:7,L('1H97)E(&5X:7-T<PT**B!A;B!A
M+"!B+"!C+"!A;F0 at 9"P@;F]N92!O9B!T:&5M('1H92!S86UE+"!S=6-H('1H
M870@#0HJ(&%>,RMB7C,@/2!N(#UC7C,@*V1>,RX@#0HJ(')E='5R;G,Z(`T*
M*B!A('1A>&E#86(@<W1R=6-T+"!W:71H(&$L(&(L(&,L(&%N9"!D(&EF(&9O
M=6YD+B!I9B!O;FQY(&]N92!S;VQU=&EO;B!T;R!X7C,K>5XS('=A<R!F;W5N
M9"P@#0HJ(&, at 86YD(&0@=VEL;"!B92!Z97)O+B!)9B!N;VYE('=E<F4 at 9F]U
M;F0L('1H96X at 82!A;F0 at 8B!W:6QL(&)E('IE<F\@87,@=V5L;"X@#0HJ('!A
M<F%M971E<G,Z(`T**B!N(&ES(&%N(&EN=&5G97(@=&AA="!I<R!T;R!B92!C
M:&5C:V5D(&9O<B!T87AI(&YU;6)E<BUN97-S+B`-"BHO#0IT87AI0V%B(&ES
M5&%X:2AI;G0@;BE[#0H):6YT(&QI;6ET(#T at 8W5B95)O;W1&;&]O<BAN*2`M
M(#$[#0H):6YT(&AI=',@/2`P.R`-"@EI;G1;72!R97-U;'1S(#T at 6S`L,"PP
M+#!=.PT*"69O<B`H:6YT(&D@/2`P.R!I(#P@;&EM:70[(&DK*RD@>PT*"0EI
M;G0@<F5S(#T@;B`M(&DJ:2II.PT*"0ED;W5B;&4 at 8W5B95)O;W0@/2!R97->
M7B at Q+S,N,"D[#0H)"6EN="!N96%R97-T26YT(#T at 8V%S="AI;G0I("AC=6)E
M4F]O="`K(#`N-2D[#0H)"61O=6)L92!D:69F(#T@*&-U8F52;V]T("T@;F5A
M<F5S=$EN="D@*B`H8W5B95)O;W0 at +2!N96%R97-T26YT*3L-"@D):68@*&1I
M9F8@/"`Q92TQ,"D@>PT*"0D):68@*&AI=',@/"`R("8F(')E<W5L='-;,5T@
M(3T@:2D@>PT*"0D)"7)E<W5L='-;:&ET<R`J(#)=(#T@:3L-"@D)"0ER97-U
M;'1S6VAI=',@*B`R("L@,5T@/2!N96%R97-T26YT.PT*"0D)?0T*"0D):&ET
M<RLK.PT*"0E]#0H)?0T*"7)E='5R;B!T87AI0V%B*&XL<F5S=6QT<ULP72QR
M97-U;'1S6S%=+')E<W5L='-;,ETL<F5S=6QT<ULS72D[#0I]#0H-"B\O+R!F
M:6YD<R!T:&4@;&%R9V5S="!I;G1E9V5R('@@<W5C:"!T:&%T('A>,R`\(&X@
M#0II;G0 at 8W5B95)O;W1&;&]O<BAI;G0@;BE[#0H)9&]U8FQE(&-U8F52;V]T
M(#T@;B!>7B`H,2\S+C`I.PT*"6EN="!C<D9L(#T at 8V%S="AI;G0I(&-U8F52
6;V]T.PT*"7)E='5R;B!C<D9L.PT*?0``
`
end
More information about the Digitalmars-d-learn
mailing list