[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: ber_memalloc size distribution of back-ldbm



Can you make your 100K entry data set public? It would be nice if we all
had a consistent data set available to measure performance against.

Certainly a fast malloc library would be a good thing, but a better thing
would be to eliminate unnecessary use of malloc in the first place. As I've
already demonstrated, this is not too difficult to accomplish on a case by
case basis.

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc

> -----Original Message-----
> From: owner-openldap-devel@OpenLDAP.org
> [mailto:owner-openldap-devel@OpenLDAP.org]On Behalf Of Jonghyuk Choi
> Sent: Thursday, October 25, 2001 7:05 PM
> To: openldap-devel@OpenLDAP.org
> Subject: ber_memalloc size distribution of back-ldbm
>
>
> Below is the distribution of memory requests to ber_memalloc.
> Numbers are obtained while searching for cn=* from 100K entry directory.
> As you can see, there are a lot different allocations of small sizes,
> as well as some large sizes such as for entries (s=1024).
> I hope these numbers will be of help in investigating designs of back-bdb.
> I think there are chances of improvement in memory allocation performance.
> One option is to incorporate an advanced memory allocator (such as slab
> allocator) and
> one other possibility is to consolidate similar allocation sizes into
> nearby 2^n numbers.
>
> Jong Hyuk Choi
> jongchoi@us.ibm.com
> IBM Thomas J. Watson Research
> Enterprise Linux Group
>
> ------------------------------------------------------------------
> -----------------------------------------
>
> ber_memalloc(1)=7
> ber_memalloc(2)=500029
> ber_memalloc(3)=1600774
> ber_memalloc(4)=203648
> ber_memalloc(5)=24109
> ber_memalloc(6)=550088
> ber_memalloc(7)=264551
> ber_memalloc(8)=7531546
> ber_memalloc(9)=132804
> ber_memalloc(10)=169581
> ber_memalloc(11)=370644
> ber_memalloc(12)=3215839
> ber_memalloc(13)=718256
> ber_memalloc(14)=612916
> ber_memalloc(15)=185561
> ber_memalloc(16)=3664731
> ber_memalloc(17)=177939
> ber_memalloc(18)=173692
> ber_memalloc(19)=68110
> ber_memalloc(20)=286008
> ber_memalloc(21)=249442
> ber_memalloc(22)=24564
> ber_memalloc(23)=41142
> ber_memalloc(24)=51654
> ber_memalloc(25)=531898
> ber_memalloc(26)=83487
> ber_memalloc(27)=32339
> ber_memalloc(28)=42673
> ber_memalloc(29)=35419
> ber_memalloc(30)=48841
> ber_memalloc(31)=60638
> ber_memalloc(32)=127210
> ber_memalloc(33)=110763
> ber_memalloc(34)=119258
> ber_memalloc(35)=33997
> ber_memalloc(36)=25361
> ber_memalloc(37)=17492
> ber_memalloc(38)=27040
> ber_memalloc(39)=28847
> ber_memalloc(40)=25698
> ber_memalloc(41)=63630
> ber_memalloc(42)=115062
> ber_memalloc(43)=28814
> ber_memalloc(44)=30753
> ber_memalloc(45)=39758
> ber_memalloc(46)=46247
> ber_memalloc(47)=27963
> ber_memalloc(48)=27392
> ber_memalloc(49)=26146
> ber_memalloc(50)=31608
> ber_memalloc(51)=20100
> ber_memalloc(52)=17607
> ber_memalloc(53)=15191
> ber_memalloc(54)=12184
> ber_memalloc(55)=9488
> ber_memalloc(56)=7030
> ber_memalloc(57)=5347
> ber_memalloc(58)=3633
> ber_memalloc(59)=2446
> ber_memalloc(60)=1507
> ber_memalloc(61)=967
> ber_memalloc(62)=513
> ber_memalloc(63)=293
> ber_memalloc(64)=142
> ber_memalloc(65)=85
> ber_memalloc(66)=34
> ber_memalloc(67)=15
> ber_memalloc(68)=8
> ber_memalloc(69)=9
> ber_memalloc(70)=2
> ber_memalloc(71)=3
> ber_memalloc(75)=3
> ber_memalloc(79)=1
> ber_memalloc(83)=2
> ber_memalloc(84)=1
> ber_memalloc(86)=2
> ber_memalloc(90)=1
> ber_memalloc(91)=2
> ber_memalloc(92)=1
> ber_memalloc(94)=2
> ber_memalloc(96)=2
> ber_memalloc(97)=1
> ber_memalloc(99)=1
> ber_memalloc(101)=1
> ber_memalloc(102)=1
> ber_memalloc(106)=1
> ber_memalloc(107)=1
> ber_memalloc(108)=1
> ber_memalloc(111)=1
> ber_memalloc(113)=4
> ber_memalloc(115)=3
> ber_memalloc(116)=3
> ber_memalloc(117)=1
> ber_memalloc(118)=1
> ber_memalloc(119)=1
> ber_memalloc(120)=1
> ber_memalloc(121)=3
> ber_memalloc(123)=2
> ber_memalloc(125)=2
> ber_memalloc(126)=1
> ber_memalloc(127)=1
> ber_memalloc(128)=1
> ber_memalloc(130)=2
> ber_memalloc(132)=1
> ber_memalloc(133)=2
> ber_memalloc(137)=1
> ber_memalloc(138)=2
> ber_memalloc(141)=1
> ber_memalloc(144)=1
> ber_memalloc(145)=1
> ber_memalloc(146)=1
> ber_memalloc(147)=2
> ber_memalloc(150)=2
> ber_memalloc(151)=4
> ber_memalloc(152)=1
> ber_memalloc(155)=4
> ber_memalloc(157)=2
> ber_memalloc(158)=1
> ber_memalloc(159)=1
> ber_memalloc(160)=1
> ber_memalloc(161)=1
> ber_memalloc(163)=2
> ber_memalloc(164)=1
> ber_memalloc(167)=1
> ber_memalloc(170)=1
> ber_memalloc(172)=1
> ber_memalloc(173)=1
> ber_memalloc(174)=2
> ber_memalloc(175)=1
> ber_memalloc(176)=3
> ber_memalloc(178)=1
> ber_memalloc(180)=1
> ber_memalloc(181)=1
> ber_memalloc(182)=1
> ber_memalloc(186)=2
> ber_memalloc(188)=1
> ber_memalloc(192)=1
> ber_memalloc(200)=1
> ber_memalloc(214)=2
> ber_memalloc(216)=1
> ber_memalloc(218)=1
> ber_memalloc(222)=1
> ber_memalloc(224)=1
> ber_memalloc(229)=1
> ber_memalloc(385)=1
> ber_memalloc(423)=1
> ber_memalloc(441)=1
> ber_memalloc(443)=1
> ber_memalloc(446)=1
> ber_memalloc(448)=1
> ber_memalloc(1024)=100004
> ber_memalloc(4096+)=2
>