> Anybody has objection if dlmalloc be used as default memory manager? The
> advantage is very obvious: speed improvement

Hello,

Regarding my proposal to make dlmalloc default memory manager, I attached below
a speedtst result for consideration (30% speed improvement when using dlmalloc 
):

11/12/11 08:29:25 Windows XP Professional 5.01.2600 Service Pack 3
xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9409) Microsoft Visual C++ 
16.00.40219.01
THREADS: 0
N_LOOPS: 1000000
                                                                 DL   STD
                                                               ===== =====
[ T000: empty loop overhead ]...................................0.06  0.06
==================================================================== =====
[ T001: x := L_C ]..............................................0.05  0.05
[ T002: x := L_N ]..............................................0.03  0.03
[ T003: x := L_D ]..............................................0.06  0.03
[ T004: x := S_C ]..............................................0.06  0.05
[ T005: x := S_N ]..............................................0.03  0.03
[ T006: x := S_D ]..............................................0.03  0.03
[ T007: x := M->M_C ]...........................................0.06  0.06
[ T008: x := M->M_N ]...........................................0.05  0.03
[ T009: x := M->M_D ]...........................................0.05  0.05
[ T010: x := M->P_C ]...........................................0.06  0.06
[ T011: x := M->P_N ]...........................................0.05  0.03
[ T012: x := M->P_D ]...........................................0.03  0.05
[ T013: x := F_C ]..............................................0.25  0.72
[ T014: x := F_N ]..............................................0.27  0.27
[ T015: x := F_D ]..............................................0.14  0.16
[ T016: x := o:Args ]...........................................0.38  0.61
[ T017: x := o[2] ].............................................0.06  0.08
[ T018: round( i / 1000, 2 ) ]..................................0.39  0.63
[ T019: str( i / 1000 ) ].......................................0.98  1.83
[ T020: val( s ) ]..............................................0.44  0.69
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.69  0.97
[ T022: dtos( d - i % 10000 ) ].................................0.70  0.98
[ T023: eval( { || i % 16 } ) ].................................0.80  1.52
[ T024: eval( bc := { || i % 16 } ) ]...........................0.55  0.80
[ T025: eval( { |x| x % 16 }, i ) ].............................0.63  1.14
[ T026: eval( bc := { |x| x % 16 }, i ) ].......................0.50  0.72
[ T027: eval( { |x| f1( x ) }, i ) ]............................0.77  1.50
[ T028: eval( bc := { |x| f1( x ) }, i ) ]......................0.66  1.08
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ].................0.69  1.09
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................9.36 11.05
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]................8.92 11.63
[ T032: x := valtype( x ) +  valtype( i ) ].....................0.77  1.67
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........1.20  1.88
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.42  0.44
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.44  0.42
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.42  0.42
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.41  0.42
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.44  0.44
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.42  0.42
[ T040: ascan( a, i % 16 ) ]....................................0.56  0.81
[ T041: ascan( a, { |x| x == i % 16 } ) ].......................5.95  8.45
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....1.25  3.06
[ T043: x := a ]................................................0.06  0.06
[ T044: x := {} ]...............................................0.17  0.42
[ T045: f0() ]..................................................0.22  0.45
[ T046: f1( i ) ]...............................................0.25  0.53
[ T047: f2( c[1...8] ) ]........................................0.28  0.48
[ T048: f2( c[1...40000] ) ]....................................0.27  0.50
[ T049: f2( @c[1...40000] ) ]...................................0.27  0.47
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.31  0.55
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.66  0.75
[ T052: f2( a ) ]...............................................0.27  0.52
[ T053: x := f4() ].............................................1.45  2.98
[ T054: x := f5() ].............................................0.67  2.23
[ T055: x := space(16) ]........................................0.42  1.45
[ T056: f_prv( c ) ]............................................1.00  2.56
==================================================================== =====
[ total application time: ]....................................49.83 73.89
[ total real time: ]...........................................50.08 74.13

Andi


------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
xHarbour-developers mailing list
xHarbour-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xharbour-developers

Reply via email to