Browse Source

提高协程切换测试4ns.

tags/v2.9.7
tearshark 4 years ago
parent
commit
1d2d17a2bb
2 changed files with 4 additions and 9 deletions
  1. 3
    9
      tutorial/test_async_resumable.cpp
  2. 1
    0
      vs_proj/librf.cpp

+ 3
- 9
tutorial/test_async_resumable.cpp View File

@@ -28,9 +28,9 @@ static const intptr_t N = 3000000;
auto yield_switch(intptr_t coro) -> resumef::generator_t<intptr_t>
{
for (intptr_t i = 0; i < N / coro; ++i)
for (intptr_t i = N / coro; i > 0; --i)
co_yield i;
co_return N / coro;
co_return 0;
}
void resumable_switch(intptr_t coro, size_t idx)
@@ -41,13 +41,7 @@ void resumable_switch(intptr_t coro, size_t idx)
for (intptr_t i = 0; i < coro; ++i)
{
//go yield_switch(coro);
go [=] ()->resumef::generator_t<intptr_t>
{
for (intptr_t i = 0; i < N / coro; ++i)
co_yield i;
co_return N / coro;
};
go yield_switch(coro);
}
auto middle = std::chrono::steady_clock::now();
dump(idx, "BenchmarkCreate_" + std::to_string(coro), start, middle, coro);

+ 1
- 0
vs_proj/librf.cpp View File

@@ -43,6 +43,7 @@ int main(int argc, const char* argv[])
//test_ring_queue<resumef::ring_queue_spinlock<int, false, uint32_t>>();
//test_ring_queue<resumef::ring_queue_lockfree<int, uint64_t>>();
resumable_main_resumable();
/*
resumable_main_channel();
resumable_main_channel_mult_thread();

Loading…
Cancel
Save