option(WITH_BOOST_ATOMIC "Use boost atomics (only for boost >= 1.54)" OFF)
option(WITH_ASAN "Build ASan+UBSan instrumented code" OFF)
option(WITH_TSAN "Build TSan instrumented code" OFF)
+option(ENABLE_UNIT_TEST "Enable unit test" ON)
+option(ENABLE_STRESS_TEST "Enable stress test" ON)
set(CMAKE_TARGET_ARCHITECTURE "" CACHE string "Target build architecture")
find_package(Threads)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCDSTEST_HAVE_BYTESWAP_H")
endif()
-
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/unit)
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/stress)
+if(ENABLE_UNIT_TEST)
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/unit)
+endif()
+if(ENABLE_STRESS_TEST)
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/stress)
+endif()
file(GLOB SANITIZER_OPTION_FILES ${PROJECT_SOURCE_DIR}/tools/tsan-suppression)
file(COPY ${SANITIZER_OPTION_FILES} DESTINATION ${EXECUTABLE_OUTPUT_PATH})
--- /dev/null
+[General]
+# HZP scan strategy, possible values are "classic", "inplace". Default is "classic"
+hp_scan_strategy=inplace
+hazard_pointer_count=72
+#hp_max_thread_count=32
+#hp_retired_ptr_count=256
+
+# cds::gc::DHP initialization parameters
+dhp_init_guard_count=8
+
+# cds::urcu::gc initialization parameters
+rcu_buffer_size=256
+
+
+[Stack_Push]
+ThreadCount=4
+StackSize=100000
+EliminationSize=4
+
+[Stack_PushPop]
+PushThreadCount=4
+PopThreadCount=4
+StackSize=800000
+EliminationSize=4
+
+[IntrusiveStack_PushPop]
+PushThreadCount=4
+PopThreadCount=4
+StackSize=800000
+EliminationSize=4
+# Flat combining stack parameters
+# FCIterate=1 - the test will be run iteratively
+# for combine pass count from 1 to FCCombinePassCount
+# and compact factor from 1 to FCCompactFactor
+# FCIterate=0 - the test runs only once for giving
+# FCCombinePassCount and FCCompactFactor
+FCIterate=0
+FCCombinePassCount=4
+FCCompactFactor=64
+
+[queue_push]
+ThreadCount=4
+QueueSize=100000
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=64
+
+[queue_pop]
+ThreadCount=4
+QueueSize=100000
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=64
+
+[queue_push_pop]
+ProducerCount=2
+ConsumerCount=2
+QueueSize=100000
+# HeavyValueSize - size of value for flat cobining containers, default 100
+# HeavyValueSize=100
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=64
+
+[queue_random]
+ThreadCount=4
+QueueSize=500000
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=64
+
+[intrusive_queue_push_pop]
+ReaderCount=2
+WriterCount=2
+QueueSize=100000
+# Flat combining queue parameters
+FCCompactFactor=64
+FCPassCount=8
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=64
+
+[bounded_queue_fulness]
+ThreadCount=4
+QueueSize=1024
+PassCount=100000
+
+[spsc_queue]
+QueueSize=1024
+PassCount=10000
+
+[spsc_buffer]
+BufferSize=100000
+PushCount=100000
+
+[pqueue_pop]
+ThreadCount=4
+QueueSize=30000
+
+[pqueue_push]
+ThreadCount=4
+QueueSize=30000
+
+[pqueue_push_pop]
+PushThreadCount=4
+PopThreadCount=4
+QueueSize=30000
+
+[map_find_string]
+ThreadCount=2
+MapSize=10000
+PercentExists=50
+PassCount=2
+MaxLoadFactor=4
+
+# *** Cuckoo map properties
+CuckooInitialSize=256
+CuckooProbesetSize=8
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdel_func]
+InsertThreadCount=2
+DeleteThreadCount=2
+UpdateThreadCount=2
+ThreadPassCount=6
+MapSize=10000
+MaxLoadFactor=4
+
+# *** Cuckoo map properties
+CuckooInitialSize=256
+CuckooProbesetSize=8
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdel_item_int]
+InsertThreadCount=2
+DeleteThreadCount=2
+MapSize=5000
+GoalItem=2500
+AttemptCount=500
+MaxLoadFactor=4
+
+# *** Cuckoo map properties
+CuckooInitialSize=256
+CuckooProbesetSize=8
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdel_string]
+InsertThreadCount=2
+DeleteThreadCount=2
+ThreadPassCount=4
+MapSize=10000
+MaxLoadFactor=4
+PrintGCStateFlag=1
+
+# *** Cuckoo map properties
+CuckooInitialSize=256
+CuckooProbesetSize=8
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdelfind]
+InitialMapSize=50000
+ThreadCount=4
+MaxLoadFactor=4
+InsertPercentage=20
+DeletePercentage=20
+Duration=3
+
+# *** Cuckoo map properties
+CuckooInitialSize=256
+CuckooProbesetSize=8
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_delodd]
+MapSize=10000
+InsThreadCount=2
+DelThreadCount=2
+ExtractThreadCount=2
+FindThreadCount=2
+MaxLoadFactor=4
+PassCount=20
+
+#Cuckoo map properties
+CuckooInitialSize=256
+CuckooProbesetSize=8
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_minmax]
+MapSize=50000
+InsThreadCount=2
+ExtractThreadCount=2
+PassCount=500
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_iter_erase]
+MapSize=5000
+InsThreadCount=2
+DelThreadCount=2
+ExtractThreadCount=2
+FindThreadCount=2
+MaxLoadFactor=4
+PassCount=400
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[free_list]
+ThreadCount=4
+PassCount=100000
\ No newline at end of file
EliminationSize=4\r
\r
[Stack_PushPop]\r
-PushThreadCount=8\r
-PopThreadCount=8\r
+PushThreadCount=4\r
+PopThreadCount=4\r
StackSize=800000\r
EliminationSize=4\r
\r
[IntrusiveStack_PushPop]\r
-PushThreadCount=8\r
-PopThreadCount=8\r
+PushThreadCount=4\r
+PopThreadCount=4\r
StackSize=800000\r
EliminationSize=4\r
# Flat combining stack parameters\r
SegmentedQueue_SegmentSize=64\r
\r
[queue_pop]\r
-ThreadCount=8\r
+ThreadCount=4\r
QueueSize=100000\r
# SegmentedQueue parameters:\r
# SegmentedQueue_Iterate: \r
FeldmanMapArrayBits=8\r
\r
[map_insdel_string]\r
-InsertThreadCount=4\r
-DeleteThreadCount=4\r
+InsertThreadCount=2\r
+DeleteThreadCount=2\r
ThreadPassCount=4\r
MapSize=10000\r
MaxLoadFactor=4\r
\r
[map_delodd]\r
MapSize=10000\r
-InsThreadCount=3\r
+InsThreadCount=2\r
DelThreadCount=2\r
ExtractThreadCount=2\r
FindThreadCount=2\r
\r
[map_iter_erase]\r
MapSize=5000\r
-InsThreadCount=3\r
+InsThreadCount=2\r
DelThreadCount=2\r
ExtractThreadCount=2\r
FindThreadCount=2\r
--- /dev/null
+[General]
+# HP scan strategy, possible values are "classic", "inplace". Default is "classic"
+hp_scan_strategy=inplace
+# Hazard pointer count per thread, for gc::HP
+hazard_pointer_count=72
+#hp_max_thread_count=32
+#hp_retired_ptr_count=256
+
+# cds::gc::DHP initialization parameters
+dhp_init_guard_count=16
+
+# cds::urcu::gc initialization parameters
+rcu_buffer_size=256
+
+[Stack_Push]
+ThreadCount=4
+StackSize=500000
+EliminationSize=4
+
+[Stack_PushPop]
+PushThreadCount=2
+PopThreadCount=2
+StackSize=4000000
+EliminationSize=4
+
+[IntrusiveStack_PushPop]
+PushThreadCount=2
+PopThreadCount=2
+StackSize=4000000
+EliminationSize=4
+# Flat combining stack parameters
+# FCIterate=1 - the test will be run iteratively
+# for combine pass count from 1 to FCCombinePassCount
+# and compact factor from 1 to FCCompactFactor
+# FCIterate=0 - the test runs only once for giving
+# FCCombinePassCount and FCCompactFactor
+FCIterate=0
+FCCombinePassCount=4
+FCCompactFactor=64
+
+[queue_push]
+ThreadCount=4
+QueueSize=3000000
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=64
+
+[queue_pop]
+ThreadCount=4
+QueueSize=3000000
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=64
+
+[queue_push_pop]
+ConsumerCount=2
+ProducerCount=2
+QueueSize=3000000
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=64
+
+[queue_random]
+ThreadCount=4
+QueueSize=3000000
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=64
+
+[intrusive_queue_push_pop]
+ReaderCount=2
+WriterCount=2
+QueueSize=3000000
+# Flat combining queue parameters
+FCCompactFactor=64
+FCPassCount=8
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=64
+
+[bounded_queue_fulness]
+ThreadCount=4
+QueueSize=1024
+PassCount=100000
+
+[spsc_queue]
+QueueSize=1024
+PassCount=10000
+
+[spsc_buffer]
+BufferSize=100000
+PushCount=300000
+
+[pqueue_pop]
+ThreadCount=4
+QueueSize=500000
+
+[pqueue_push]
+ThreadCount=4
+QueueSize=500000
+
+[pqueue_push_pop]
+PushThreadCount=2
+PopThreadCount=2
+QueueSize=500000
+
+[map_find_string]
+ThreadCount=4
+MapSize=10000
+PercentExists=50
+PassCount=2
+MaxLoadFactor=4
+
+# *** Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdel_func]
+InsertThreadCount=2
+DeleteThreadCount=2
+UpdateThreadCount=2
+ThreadPassCount=4
+MapSize=50000
+MaxLoadFactor=4
+
+# *** Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdel_item_int]
+InsertThreadCount=2
+DeleteThreadCount=2
+MapSize=10000
+GoalItem=5000
+AttemptCount=1000
+MaxLoadFactor=4
+
+# *** Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdel_string]
+InsertThreadCount=2
+DeleteThreadCount=2
+ThreadPassCount=6
+MapSize=10000
+MaxLoadFactor=4
+PrintGCStateFlag=1
+
+# *** Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdelfind]
+InitialMapSize=50000
+ThreadCount=4
+MaxLoadFactor=4
+InsertPercentage=20
+DeletePercentage=20
+Duration=3
+
+# *** Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_delodd]
+MapSize=10000
+InsThreadCount=2
+DelThreadCount=2
+ExtractThreadCount=2
+FindThreadCount=2
+MaxLoadFactor=4
+PassCount=70
+
+#Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_minmax]
+MapSize=50000
+InsThreadCount=2
+ExtractThreadCount=2
+PassCount=1000
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_iter_erase]
+MapSize=5000
+InsThreadCount=2
+DelThreadCount=2
+ExtractThreadCount=2
+FindThreadCount=2
+MaxLoadFactor=4
+PassCount=500
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[free_list]
+ThreadCount=4
+PassCount=1000000
\ No newline at end of file
--- /dev/null
+[General]
+# HZP scan strategy, possible values are "classic", "inplace". Default is "classic"
+hp_scan_strategy=inplace
+hazard_pointer_count=72
+#hp_max_thread_count=32
+#hp_retired_ptr_count=256
+
+# cds::gc::DHP initialization parameters
+dhp_init_guard_count=16
+
+# cds::urcu::gc initialization parameters
+rcu_buffer_size=256
+
+
+[Stack_Push]
+ThreadCount=4
+StackSize=2000000
+EliminationSize=4
+
+[Stack_PushPop]
+PushThreadCount=3
+PopThreadCount=3
+StackSize=6000000
+EliminationSize=4
+
+[IntrusiveStack_PushPop]
+PushThreadCount=3
+PopThreadCount=3
+StackSize=6000000
+EliminationSize=4
+# Flat combining stack parameters
+# FCIterate=1 - the test will be run iteratively
+# for combine pass count from 1 to FCCombinePassCount
+# and compact factor from 1 to FCCompactFactor
+# FCIterate=0 - the test runs only once for giving
+# FCCombinePassCount and FCCompactFactor
+FCIterate=0
+FCCombinePassCount=8
+FCCompactFactor=64
+
+[queue_push]
+ThreadCount=4
+QueueSize=5000000
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=256
+
+[queue_pop]
+ThreadCount=4
+QueueSize=5000000
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=256
+
+[queue_push_pop]
+ConsumerCount=2
+ProducerCount=2
+QueueSize=5000000
+# HeavyValueSize - size of value for flat cobining containers, default 100
+# HeavyValueSize=100
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=256
+
+[queue_random]
+ThreadCount=4
+QueueSize=5000000
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=256
+
+[intrusive_queue_push_pop]
+ReaderCount=2
+WriterCount=2
+QueueSize=5000000
+# Flat combining queue parameters
+FCCompactFactor=64
+FCPassCount=8
+# SegmentedQueue parameters:
+# SegmentedQueue_Iterate:
+# 1 - run test iteratively for segment size from 4 up to SegmentedQueue_SegmentSize
+# 0 - run test for segment size equal to SegmentedQueue_SegmentSize
+SegmentedQueue_Iterate=0
+SegmentedQueue_SegmentSize=256
+
+[bounded_queue_fulness]
+ThreadCount=6
+QueueSize=1024
+PassCount=1000000
+
+[spsc_queue]
+QueueSize=1024
+PassCount=100000
+
+[spsc_buffer]
+BufferSize=1000000
+PushCount=1000000
+
+[pqueue_pop]
+ThreadCount=4
+QueueSize=2000000
+
+[pqueue_push]
+ThreadCount=4
+QueueSize=2000000
+
+[pqueue_push_pop]
+PushThreadCount=2
+PopThreadCount=2
+QueueSize=2000000
+
+[map_find_string]
+ThreadCount=4
+MapSize=50000
+PercentExists=50
+PassCount=4
+MaxLoadFactor=4
+
+# *** Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdel_func]
+InsertThreadCount=2
+DeleteThreadCount=2
+UpdateThreadCount=2
+ThreadPassCount=4
+MapSize=100000
+MaxLoadFactor=4
+
+# *** Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdel_item_int]
+InsertThreadCount=2
+DeleteThreadCount=2
+MapSize=10000
+GoalItem=5000
+AttemptCount=1000
+MaxLoadFactor=4
+
+# *** Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdel_string]
+InsertThreadCount=2
+DeleteThreadCount=2
+ThreadPassCount=8
+MapSize=10000
+MaxLoadFactor=4
+
+# *** Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_insdelfind]
+InitialMapSize=50000
+ThreadCount=4
+MaxLoadFactor=4
+InsertPercentage=20
+DeletePercentage=20
+Duration=5
+
+# *** Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_delodd]
+MapSize=10000
+InsThreadCount=2
+DelThreadCount=2
+ExtractThreadCount=2
+FindThreadCount=2
+MaxLoadFactor=4
+PassCount=100
+
+#Cuckoo map properties
+CuckooInitialSize=1024
+CuckooProbesetSize=16
+# 0 - use default
+CuckooProbesetThreshold=0
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_minmax]
+MapSize=50000
+InsThreadCount=2
+ExtractThreadCount=2
+PassCount=1000
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+[map_iter_erase]
+MapSize=5000
+InsThreadCount=2
+DelThreadCount=2
+ExtractThreadCount=2
+FindThreadCount=2
+MaxLoadFactor=4
+PassCount=1000
+
+# *** FeldmanHashMap properties
+FeldmanMapHeadBits=8
+FeldmanMapArrayBits=8
+
+
+[free_list]
+ThreadCount=4
+PassCount=1000000
\ No newline at end of file