相关疑难解决方法(0)

Go运行时使用的线程数

Go运行时(调度程序,垃圾收集器等)可以使用多少个线程?例如,如果GOMAXPROCS10,那么运行时将使用多少个内核线程?

编辑:

我读的理由改变GOMAXPROCSruntime.NumCPU()围棋1.5.有一句话声称"单个goroutine程序的性能可以通过提高GOMAXPROCS运行时的并行性来提高,特别是垃圾收集器."

我真正的问题是:如果我在具有CPU配额的Docker容器中运行单goroutine程序,那么为了获得最大性能,我需要的逻辑处理器的最小数量是多少.

concurrency multithreading go goroutine docker

9
推荐指数
1
解决办法
7642
查看次数

如何在 switch 语句中使用 spaceship 运算符

新的<=>运算符使编写代码更加方便,并且如果比较算法不平凡,它可以节省一些性能,因为它不需要重复两次才能获得完整的排序。

或者至少当我了解到这一点时我是这么认为的。然而,当我尝试在实践中使用它时,在switch声明中,它不起作用。

此代码无法编译:

#include <iostream>

void compare_values(int x, int y)
{
    switch (x <=> y)
    {
    case std::strong_ordering::less:
        std::cout << "is less\n";
        break;
    case std::strong_ordering::greater:
        std::cout << "is greater\n";
        break;
    case std::strong_ordering::equal:
        std::cout << "is equal\n";
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器显示错误,提示返回的值<=>不能在 a 中使用switch

<source>: In function 'void compare_values(int, int)':
<source>:5:15: error: switch quantity not an integer
    5 |     switch (x <=> y)
      |             ~~^~~~~
Compiler returned: 1
Run Code Online (Sandbox Code Playgroud)

活生生的例子

我猜想在 switch 中使用 …

c++ switch-statement spaceship-operator c++20

6
推荐指数
1
解决办法
414
查看次数