www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - Multi-dimension array performance. - matrix_perf.zip

I posted this as part of a 'bug' earlier, but since that was not actually a
compiler bug (but one in my code ;), the performance part of it may have been
lost in the shuffle.

Attached are the .d and .cod files for both a 'for' and 'foreach' version of a
benchmark using dynamic int[][]'s.

Although the 'foreach' version is faster, both versions are significantly slower
than the equivalent for DMC.

Relative times are in the 'results' file.

BTW - Should I be posting these here, or in digitalmars.D?

Thanks,

Dave


begin 0644 matrix_perf.zip

M`YN&(4&;AB%!57 $``````"M6%N/VDH,? [2_ >>*Q8%-L"4HSZ$!"2D?3 2
M?4"L*A1(%K+-!26AW?[[X[ED[J%L>R04)F./Q_;8GSU9/?M?G5-57B_.0^^?
M59HE_2_]/&JJ]'T\C!]ZSN5ZR-*CLP]G;-;;K'?+U$9!^7<Z6J7ISO>M/),\

MGE23K^2Y/S9EM=H%\J3 C?=%\O.8174MY +\NK?SAT]U$T]K,*HX>5%3IBL_

M41,)9OT`YK`^/CCN*#D/7->5'NU2)N90UT(*>6.$JE1W(.+&$Q`RQC+'$3QF
M3UAF9&XAF*<>9L:$CM>6665IA0I%F%JGXCK,TN)[61R38=,=778_WKM:=JA.
MPZZ%"*O/SG+Q+Q[GY0\\'"PWY+6^'AP8 C7H++%N\3A+(F<9;`>/[B XO\"B
M;X)CLQ;C<,T%A^O!2!""+1^CEN71'7M4V&#I;]O9^&=9Q?U+4_7%9 /72D4R
ME< 69,2U/$99YA1)5)%Y2P0SA:EY2)A'S="-)JZ`V1=X?$+?7F"=X/9U;C*[
M60^8`ZC9([<U.R2S41Q3SP=$FV-^(6L$(YY]BQ+G&?D/O6=O.N>2N`.E4U!\

M?O+ 7!94>NM-%LEO!W#C;`5NG#W-A38L<M/B*`<Q$:(H`6IZ7"K6F?K][0!"


MC3,['DIPQ>()AX`TR0(I _#T<22-PLXLOY%^BZYP(6F!1%HH:2 3-#MTQ/(E
M'`M, V16R:+/4]6Q%K651& GD3+SB$]+V9)+U($ D"P.933B)45"9)ID^F'C
M[):L]:2-GR>SN>1PH25Q'EY((XF\0B%D<:`[B"%2UB+2E",2/ES/*$1 RII`
MFPR<)`[&NN]\QJT7J("<N$I((7F8_(TBOT4\YFP)'`E\A09\90[8(*, QW$Y
ML]:V&ADRQ=101E:K^`17.-SR/8B6&Z&E";* Y60&6GZ>=F*U18B255C&*`09
M/CZROP1?+/ECT-D!MOC6<!^LTOL%_;\?*CT[5$),29V>"7_8 TA).E*$QT ^
M?%?O*T5[0DBAVF6A+F;$6;4^IO-F(WHTFNUO^:5?G\NJ`15QNS5&4I 0`V!>
M2M3R]16:H_X*KIQS^]U*Z8&-]DJZH/%&Q[,9<,^US\!)J>DBU6LISK!]T?>Y


M"<MD'0^( =JUBX9\J)8Z6F;L4I`I GC<$'%#D<"BQTC7 Q8MH^M29M8*BK!/
M!R]N,#O;]E47+_0&0,%>Y2SYER1NGMH/^CS>R3K9Y4B8RN0K[9-5_5!6GV6)

M' (``)`%```)`!4`;6%T<FEX,BYD550)``.;AB%!FX8A055X!```````C51+
MCYLP$+Y'RG\8[:H*!,3&H:W4TK2G/?3<GDHYH,`F#MA$V.RVJO+?.V,PCY`^

MB%37_(=#D+IZ4;X![ZM2N?!KN0`</3;J]PAH<-T!,VRD%4&9RX,^HI)X.NQ3
M5>?I_HCT5=/Z 8=Q$H'HZ6F <C"GRZ/A;$[QG)81F4PH:."!L4??/&]$<6G%


MGX"A6]E0V+QCW`3K<N";%!A-O$DZ9=3>-60#V2 J$UK,*^NS,H-> \S+KX`G


M8:?+0Y#JBCN$B%GBPGO3PV3?KE_I[P#J
M FW_#R;^".L+"1R^VT3`/TA</&\2^+9OJ5^I3X6P_'V[G_'9^LFY>Y6!G=_E
MG2\$5C=.$K9)'!HA3%`FX76"<_"AYPC6BHQU\%BF9Y5GCCN`NG]ET_TKOP%0
M2P,$%````` `#KH0,9QTFK?/!```7!,```H`%0!M871R:7 N8V]D550)``.;
MAB%!FX8A055X!```````I5A;CZ)*$'[&Q/_ \\8QH#C
M,C$HC+++Q0#NSOGWI_I^H7$]F<1 TU5=7;?^JIK5)OANG>OJ=K6& []669Z.

MD?SVOX`I_6SKTCH4<59*2Y+T<CBF9VTF+165Z!HBX5IG9?LA!$;S-BO2>OX=
M/P^GMJI7^U">%+S)H4Q_G_*X:<1<B%X/9OYHUK3)<P,VE6<W;JML%<3[7)87
MUW7\;Y.V>5J>V\MP,!Q,6B!:37HNTK(%5I!^*U(KW/J8PAC`1%!BDL1M+) U
M[_NP/#E
M$,S/+F)&A)Y7QJRR,*%"$:K6N;Q-\JS\696G=-+VII;9BP\NEKRIDY!?(;N:

M8"?XMVLQCJ1Q*' \MCCY7=7)Z-K6HR?;<8G L6.BTEW'MH'H220L7]`\KNLI
MSG.K3.,:SQM2V+(^JQJI/Z8FQ$E"W!%BZJFX6G0GRO`C3ZW-R_-PL)EY/O5&


MHMR:!0B;SFRSP"HP[<7V*=]6\$&8A0V(=>8AUF=S',V1J:X\PZLK3WPT7` G
M //I:2,4/*S3EH2\K*[ZW\,H<1]4NL7H?\&*J9;=(3X.+6X'6IB_;4?/%7QR

MI'B>\(+I&"![I3D,%)"[,+&3 8*>+IN?+L5 EJ";F>M3S<!EU$*RS5I^94 I
M^4!S"P$$5U:SJWNHQ0HKOR"QZIQK/2XBVFX7&;BE?<BRF<^E$XITW^GI0B!"

M/,'54"JO`:,4'ED]!HP&*-3TF4$"0`8S?1"#G`0&`4J(D0AG`2)>'?_+,,F:
MD4< TH!Y/2")6NO'\)`TX>3_892;]J`<)(QSKU.2>PQZ((]P(*>>G`6=[D"T
M.Y 4J3GM]3%[G%7K*WK;?YX.M.'[45Q'S:6J6U`Q 'A/Y93!!L"\+VRO/CZ 
M61FMX$[FFR\ 2F?4:7>D6PSO;%R3`8_<C2B^3#FV!DKG8CM+$4/VHN_3?S=D
MZ.7=EV[NGKZXYQ\LTLK:U[;$14<TE*3!5$LSQT"A#J\ZD: ZK[ !"_U.GJK8
MW27J1=]P;3`OM/N);B^E]T9Q]RL`P<R%*`+(9:Q= (H;(K14+A%N!]AUK$=E

M0B_7;W;X<C'MJR[&7=A4#SG


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

M#KH0


M`` `#KH0


M%````` `#KH0

M``T```````$```"` 601``!R97-U;'1S550%``-\AB%!57 ``%!+`0(7`Q0`

M!0`#J88A055X``!02P$"%P,4````"``.NA`Q\1[9'M\```!H`0``!P`-````
M```!```` ('4%```=&EM97(N9%54!0`#FX8A055X``!02P4&`````` `"``;
)` ``[14`````
`
end
Aug 16 2004