http://bugzilla.spamassassin.org/show_bug.cgi?id=3671





------- Additional Comments From [EMAIL PROTECTED]  2004-08-07 00:23 -------
Subject: Re:  Possible 30 - 40% speed increase for Bayes with SDBM_File

It seems like the main issue with SDBM the key+value size limit of 1008
bytes.  The 10,000 entry thing mentioned in the QDBM benchmark page is a
bit more concerning to me.  The key+value length is a non-issue for us,
I think.

This is interesting:

  http://mathforum.org/epigone/modperl/quermhingblel

says:

------- start of cut text --------------
BENCHMARKS

In the distribution ./bench directory is a bench_sync.pl script that can
benchmark using the various DBMs with MLDBM::Sync.

The MLDBM::Sync::SDBM_File DBM is special because is uses SDBM_File for
fast small inserts, but slows down linearly with the size of the data
being inserted and read, with the speed matching that of GDBM_File &
DB_File somewhere around 20,000 bytes.

So for DBM key/value pairs up to 10000 bytes, you are likely better off
with MLDBM::Sync::SDBM_File if you can afford the extra space it uses.
At 20,000 bytes, time is a wash, and disk space is greater, so you might
as well use DB_File or GDBM_File.

Note that MLDBM::Sync::SDBM_File is ALPHA as of 2/27/2001.

The results for a dual 450 linux 2.2.14, with a ext2 file system
blocksize 4096 mounted async on a SCSI disk were as follows:

=== INSERT OF 50 BYTE RECORDS ===
Time for 100 write/read's for  SDBM_File               0.12s    12288 bytes
Time for 100 write/read's for  MLDBM::Sync::SDBM_File  0.14s    12288 bytes
Time for 100 write/read's for  GDBM_File               2.07s    18066 bytes
Time for 100 write/read's for  DB_File                 2.48s    20480 bytes

=== INSERT OF 500 BYTE RECORDS ===
Time for 100 write/read's for  SDBM_File               0.21s   658432 bytes
Time for 100 write/read's for  MLDBM::Sync::SDBM_File  0.51s   135168 bytes
Time for 100 write/read's for  GDBM_File               2.29s    63472 bytes
Time for 100 write/read's for  DB_File                 2.44s   114688 bytes

=== INSERT OF 5000 BYTE RECORDS ===
(skipping test for SDBM_File 1024 byte limit)
Time for 100 write/read's for  MLDBM::Sync::SDBM_File  1.30s  2101248 bytes
Time for 100 write/read's for  GDBM_File               2.55s   832400 bytes
Time for 100 write/read's for  DB_File                 3.27s   839680 bytes

=== INSERT OF 20000 BYTE RECORDS ===
(skipping test for SDBM_File 1024 byte limit)
Time for 100 write/read's for  MLDBM::Sync::SDBM_File  4.54s 13162496 bytes
Time for 100 write/read's for  GDBM_File               5.39s  2063912 bytes
Time for 100 write/read's for  DB_File                 4.79s  2068480 bytes

=== INSERT OF 50000 BYTE RECORDS ===
(skipping test for SDBM_File 1024 byte limit)
Time for 100 write/read's for  MLDBM::Sync::SDBM_File 12.29s 16717824 bytes
Time for 100 write/read's for  GDBM_File               9.10s  5337944 bytes
Time for 100 write/read's for  DB_File                11.97s  5345280 bytes
------- end ----------------------------





------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

Reply via email to