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

auto yield_switch(intptr_t coro) -> resumef::generator_t<intptr_t> 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_yield i;
co_return N / coro;
co_return 0;
} }
void resumable_switch(intptr_t coro, size_t idx) void resumable_switch(intptr_t coro, size_t idx)
for (intptr_t i = 0; i < coro; ++i) 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(); auto middle = std::chrono::steady_clock::now();
dump(idx, "BenchmarkCreate_" + std::to_string(coro), start, middle, coro); dump(idx, "BenchmarkCreate_" + std::to_string(coro), start, middle, coro);

+ 1
- 0
vs_proj/librf.cpp View File

//test_ring_queue<resumef::ring_queue_spinlock<int, false, uint32_t>>(); //test_ring_queue<resumef::ring_queue_spinlock<int, false, uint32_t>>();
//test_ring_queue<resumef::ring_queue_lockfree<int, uint64_t>>(); //test_ring_queue<resumef::ring_queue_lockfree<int, uint64_t>>();
resumable_main_resumable();
/* /*
resumable_main_channel(); resumable_main_channel();
resumable_main_channel_mult_thread(); resumable_main_channel_mult_thread();

Loading…
Cancel
Save