Comments (1)
My coding is as follow:
folly::ProducerConsumerQueue<int> BufferProducerConsumerQueue(1000);
void ProducerConsumerQueueProducer() {
for (int i = 0; i < DATA_NUM; ++i) {
while (!BufferProducerConsumerQueue.write(i));
}
}
void ProducerConsumerQueueConsumer() {
int value;
for (int i = 0; i < DATA_NUM; ++i) {
while (!BufferProducerConsumerQueue.read(value));
}
}
static void TestProducerConsumerQueue(benchmark::State &state){
for (auto _ : state) {
std::thread producerThread(ProducerConsumerQueueProducer); // 创建生产者线程
std::thread consumerThread(ProducerConsumerQueueConsumer); // 创建消费者线程
producerThread.join(); // 等待生产者线程结束
consumerThread.join(); // 等待消费者线程结束
}
}
BENCHMARK(TestProducerConsumerQueue)->UseRealTime()->Unit(benchmark::kSecond);
folly::MPMCQueue<int> BufferMPMCQueue(1000);
void MPMCQueueProducer() {
for (int i = 0; i < DATA_NUM; ++i) {
while (!BufferMPMCQueue.write(i));
}
}
void MPMCQueueConsumer() {
int value;
for (int i = 0; i < DATA_NUM; ++i) {
while (!BufferMPMCQueue.read(value));
}
}
static void TestMPMCQueue(benchmark::State &state){
for (auto _ : state) {
std::thread producerThread(MPMCQueueProducer); // 创建生产者线程
std::thread consumerThread(MPMCQueueConsumer); // 创建消费者线程
producerThread.join(); // 等待生产者线程结束
consumerThread.join(); // 等待消费者线程结束
}
}
BENCHMARK(TestMPMCQueue)->UseRealTime()->Unit(benchmark::kSecond);
And the speed results is:
------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------
TestProducerConsumerQueue/real_time 8.46 s 0.000 s 1
TestMPMCQueue/real_time 5.47 s 0.000 s 1
from folly.
Related Issues (20)
- A question about coro::Mutex implementation
- [powerpc] Some build errors and test results: issues to be addressed – threading, endianness HOT 22
- Build failure with Fedora 40's GCC 14.0.1
- Eroor
- Sweep: write an app with main.py
- [MSVC] Folly failed due to error C7555: use of designated initializers requires at least '/std:c++20' HOT 1
- EventBaseAtomicNotificationQueue - Check Failed
- Broken check for std::ranges?
- v2024.02.19 branch FTBFS / glog was not included correctly
- loadUnaligned and strict aliasing
- Question: What does * and *+ mean for a lambda? HOT 2
- a test failure in ScopeGuardTest.cpp due to missing "const" specifier on VS2022
- 'folly/portability/Config.h' file not found
- 'cstdlib' file not found
- Installing with cmake
- off64_t undefined on alpine HOT 2
- Support glog 0.7.0
- Build Error on Debian 12: mixing character types in fmt
- How should I run folly on riscv64? HOT 4
- illegal identifier _T and _A at fbvector at line 1567
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from folly.