TKRZW_DBM_PERF(1)
π TKRZW_DBM_PERF π
okay bestie, so this is tkrzw_dbm_perf, a whole manual page for tkrzw_dbm_perf 1.0.32 β a lil tool that ships with the Tkrzw crew and lives in your terminal under User Commands. it's giving "benchmark goblin" and honestly? iconic. let's get into it. π
β¨ NAME β¨
tkrzw_dbm_perf β the manual page for tkrzw_dbm_perf 1.0.32, bestie. that's the whole name section, no notes. π
πΈ DESCRIPTION πΈ
tkrzw_dbm_perf: Performance checker of DBM implementations of Tkrzw β like, it's the vibe check for your databases. it puts DBM implementations through their paces and tells you how fast they're moving. no cap. π¦
π«Ά Usage π«Ά
tkrzw_dbm_perf sequence [options]
: Checks setting/getting/removing performance in sequence.
tkrzw_dbm_perf parallel [options]
: Checks setting/getting/removing performance in parallel.
tkrzw_dbm_perf wicked [options]
: Checks consistency with various operations.
tkrzw_dbm_perf index [options]
: Checks performance of on-memory indexing.
four subcommands, four whole personalities. pick your fighter. π
π Common options π
these ones show up for everybody. the shared wardrobe, if you will. π
--dbm implβ the name of a DBM implementation. your choices are:auto,hash,tree,skip,tiny,baby,cache,stdhash,stdtree,poly,shard. (default:auto)--iter numβ the number of iterations. (default:10000)--size numβ the size of each record value. (default:8)--threads numβ the number of threads. (default:1)--random_seed numβ the random seed, or negative for real RNG. (default:0)--verboseβ prints verbose reports. she's chatty and we love that. π£οΈ--path pathβ the path of the file to write or read.--file implβ the name of a file implementation:std,mmap-para,mmap-atom,pos-para,pos-atom. (default:mmap-para)--no_waitβ fails if the file is locked by another process. no patience energy.--no_lockβ omits file locking.--sync_hardβ synchronizes the file physically when closing.--alloc_init numβ the initial allocation size. (default:1048576)--alloc_inc numβ the allocation increment factor. (default:2.0)--block_size numβ the block size of the positional access file. (default:1)--direct_ioβ enables the direct I/O option of the positional access file.--sync_ioβ enables the synchronous I/O option of the positional access file.--paddingβ enables padding at the end of the file.--pagecacheβ enables the mini page cache in the process.--ulog strβ sets the prefix of update log files.
π Options for the sequence subcommand π
the orderly one. one thing at a time, main character energy. β
--random_keyβ uses random keys rather than sequential ones.--random_valueβ uses random length values rather than fixed ones.--set_onlyβ does only setting.--get_onlyβ does only getting.--remove_onlyβ does only removing.--validateβ validates records.--copy strβ copies the database file.
π Options for the parallel subcommand π
multithreaded chaos, but make it controlled. π₯
--random_keyβ uses random keys rather than sequential ones.--random_valueβ uses random length values rather than fixed ones.--keysβ the number of unique keys.--rebuildβ rebuilds the database occasionally.--sleep numβ the duration to sleep between iterations. (default:0)--validateβ validates records.
π Options for the wicked subcommand π
this one is literally named wicked. it does the most, on purpose, to check consistency. π
--iteratorβ uses iterators occasionally.--clearβ clears the database occasionally.--rebuildβ rebuilds the database occasionally.--validateβ validates records.
π§ Options for the index subcommand π§
on-memory indexing speedrun, let's go. β¨
--type exprβ the types of the key and value of the index:file,mem,n2n,n2s,s2n,s2s,str,file. (default:file)--random_keyβ uses random keys rather than sequential ones.--random_valueβ uses random length values rather than fixed ones.
π Options for HashDBM π
--appendβ uses the appending mode rather than the in-place mode.--record_crc numβ the record CRC mode:-1,0,8,16,32. (default:0or-1)--record_comp strβ the record compression mode:default,none,zlib,zstd,lz4,lzma,rc4,aes. (default:noneordefault)--offset_width numβ the width to represent the offset of records. (default:4)--align_pow numβ sets the power to align records. (default:3)--buckets numβ sets the number of buckets for hashing. (default:1048583)--fbp_cap numβ sets the capacity of the free block pool. (default:2048)--min_read_size numβ sets the minimum reading size to read a record. (default:-1)--cache_bucketsβ caches the hash buckets on memory.--cipher_key strβ sets the encryption key for cipher compressors. (default: empty)
π Options for TreeDBM and FileIndex π
same energy as above, but with tree-level extras. πΈ
--appendβ uses the appending mode rather than the in-place mode.--record_crc numβ the record CRC mode:-1,0,8,16,32. (default:0or-1)--record_comp strβ the record compression mode:default,none,zlib,zstd,lz4,lzma,rc4,aes. (default:noneordefault)--offset_width numβ the width to represent the offset of records. (default:4)--align_pow numβ sets the power to align records. (default:10)--buckets numβ sets the number of buckets for hashing. (default:131101)--fbp_cap numβ sets the capacity of the free block pool. (default:2048)--min_read_size numβ sets the minimum reading size to read a record. (default:-1)--cache_bucketsβ caches the hash buckets on memory.--cipher_key strβ sets the encryption key for cipher compressors. (default: empty)--max_page_size numβ sets the maximum size of a page. (default:8130)--max_branches numβ sets the maximum number of branches of inner nodes. (default:256)--max_cached_pages numβ sets the maximum number of cached pages. (default:10000)--page_update_writeβ writes updated pages immediately.
β Options for SkipDBM β
skip list supremacy, honestly. π
--offset_width numβ the width to represent the offset of records. (default:4)--step_unit numβ sets the step unit of the skip list. (default:4)--max_level numβ sets the maximum level of the skip list. (default:14)--sort_mem_size numβ sets the memory size used for sorting. (default:268435456)--insert_in_orderβ inserts records in ascending order of the key.--max_cached_records numβ sets the number of cached records (default:65536)--reducer funcβ sets the reducer:none,first,second,last,concat,total. (default:none)
π Options for TinyDBM and StdHashDBM π
short and sweet, one single flag, she's efficient. π
--buckets numβ sets the number of buckets for hashing. (default:1048583)
π¦ Options for CacheDBM π¦
--cap_rec_num numβ sets the maximum number of records. (default:1048576)--cap_memsize numβ sets the total memory size to use.
π₯ Options for PolyDBM and ShardDBM π₯
--params strβ sets the parameters in"key=value,key=value"format.
lowkey a whole lot of flags, highkey worth it. go benchmark something and tell me the numbers. π«Ά
and that's the page, bestie!! this was tkrzw_dbm_perf 1.0.32 from January 2025 β mwah, thank you for coming to my ted talk, drink some water, and may all your iterations be fast. π
β¨π
π¦ where this page comes from
- epel 10: tkrzw 1.0.32-2.el10_1 Β· Apache-2.0
- fedora 43: tkrzw 1.0.32-2.fc43 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms