STL Set Performance

Question:
How do I improve an integer set’s performance when it is used in multithreaded environment?

Answer:
Many factors affect a multithreaded application’s performance: the operating system, the duration of context switches between threads, the synchronization mechanism used (e.g., critical section vs. lock), the number of threads, system load, and the actual code that each thread executes. Note that the very use of threads increases the overall execution time because of the context switches’ overhead. The more context switches your application has, the higher the overhead, unless you’re using a multiprocessor machine.

Remember that standard C++ doesn’t specify whether STL containers are thread-safe. Different STL implementations use different thread-safety levels, and their performance varies accordingly. Therefore, if you have the time and patience, you can measure one or two more implementations of STL and see how they affect performance.

But before you do that, remember that even if each thread has its own set object, every STL container allocates memory from the heap, which is still shared by all threads. Therefore, if your sets reallocate storage often, your threads still block each other frequently. To avoid this, you can insert all the elements at once during the set’s construction:

int arr[1000];//.. fill arr with valuesstd::set < int > s(arr,arr+1000);//initialize s with arr

You can assign new values to the elements later, without being blocked by reallocation.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

The Latest

microsoft careers

Top Careers at Microsoft

Microsoft has gained its position as one of the top companies in the world, and Microsoft careers are flourishing. This multinational company is efficiently developing popular software and computers with other consumer electronics. It is a dream come true for so many people to acquire a high paid, high-prestige job

your company's audio

4 Areas of Your Company Where Your Audio Really Matters

Your company probably relies on audio more than you realize. Whether you’re creating a spoken text message to a colleague or giving a speech, you want your audio to shine. Otherwise, you could cause avoidable friction points and potentially hurt your brand reputation. For example, let’s say you create a

chrome os developer mode

How to Turn on Chrome OS Developer Mode

Google’s Chrome OS is a popular operating system that is widely used on Chromebooks and other devices. While it is designed to be simple and user-friendly, there are times when users may want to access additional features and functionality. One way to do this is by turning on Chrome OS