C++ 中的 Seastar 框架是不是允许用户在不同的线程中分配不同大小的内存?

Posted

技术标签:

【中文标题】C++ 中的 Seastar 框架是不是允许用户在不同的线程中分配不同大小的内存?【英文标题】:Does Seastar framwork in C++ allow users to allocate different sizes of memory in different threads?C++ 中的 Seastar 框架是否允许用户在不同的线程中分配不同大小的内存? 【发布时间】:2021-05-19 08:41:08 【问题描述】:

我最近在学习 seastar 框架,而一件事让我很困惑。官方教程说内存是在线程(核心)中平均分配的,但这似乎很不方便。 Seastar 是否允许用户自己分配内存以实现每个内核具有不同内存大小的目标?

【问题讨论】:

我不认为“不方便”是正确的词。框架是为特定目的而构建的——这里的目的是构建“分片”应用程序,即每个 CPU 负载对称分布的应用程序。它不适合,也永远不会适合某些应用程序。 【参考方案1】:

我认为您所说的是在其核心(分片)之间划分为 seastar 应用程序保留的内存。这确实是自动的,每个核心将获得相等的数量。然后将该内存锁定,以便操作系统无法偷偷地将其交给其他进程。 然后,您可以使用通常的 new/delete malloc/free 方法在您认为合适的情况下管理每个核心上的内存,但您不能以这种方式分配更多内存,然后分配给您所在的核心的数量。

【讨论】:

以上是关于C++ 中的 Seastar 框架是不是允许用户在不同的线程中分配不同大小的内存?的主要内容,如果未能解决你的问题,请参考以下文章

masstree Seastar

查找字符串是不是包含 C++ 中的字符(允许提升)

在 C++ 中不允许相同的输入 [关闭]

如何创建仅允许访问 C++ 中的特定用户帐户的手动重置事件?

为啥初始化列表允许 C++ 中的类型缩小?

如何用C++编写交互程序,界面上允许用户自定义变量公式等等function