- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在设计一个流程,我必须在其中生成很多 任务。这是我做出的一个概念选择,因为我知道这在 Rust 中是可能的。然而,自从默认采用 1:1 模型以来,关于 Rust 可以生成“数十万个任务”的说法已经消失。
我的问题很简单:是否可以为非 IO 生成绿色任务、为 IO 操作生成轻型任务和 native 任务?
感谢您的宝贵时间。
最佳答案
green
crate 仍然存在,如果你想通过 libuv 生成“绿色线程”。但您可能不想这样做。
问题归结为 Rust 如何处理堆栈,以及它如何检测溢出。最初,Rust 使用拆分堆栈,这意味着它可以分配非常小的堆栈,因此每个绿色线程使用的内存非常少。通过显式检查检测到溢出。
问题是,事实证明这是非常低效的。更糟糕的是,它甚至使 native 线程变慢,因为代码不知道它将在哪个线程上运行。因此,Rust 放弃了保护页的拆分堆栈。也就是说,在捕获无效访问的线程堆栈下方总是有一个额外的 4K 空页面。
然而,这就是 native 线程堆栈的工作方式。因此,当更改进行时,绿色线程突然像普通线程一样内存效率低下,并且给 Rust 带来了一个大的运行时组件。
因此,为什么 green
被删除并变成一个常规的外部库。您仍然可以使用它,但是您现在还不清楚什么时候想使用它。
作为比较点,Go 最近或即将进行相同的更改。
至于“成百上千的任务”,现在的说法是,如果你想那样做,在64位环境中运行,惰性内存映射会使问题消失。希望。
编辑:作为附录,如果 Rust 确实在未来获得非常节省内存的“任务”,我个人会关注 Python 3 风格的生成器. Rust 没有很好的方法来做它们,但这就是我要花钱的地方......
关于rust - 在 Rust 程序中同时使用 libnative 和 libgreen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27039768/
所以我构建了一个 Android aar 库,其中包含一个 native 库(libnative-lib.so)。出于向后兼容性的考虑,它仅针对armeabi和x86架构构建。 现在,我放置 aar
我目前正在设计一个流程,我必须在其中生成很多 任务。这是我做出的一个概念选择,因为我知道这在 Rust 中是可能的。然而,自从默认采用 1:1 模型以来,关于 Rust 可以生成“数十万个任务”的说法
首先,如果这属于 Ask Ubuntu,我很抱歉...我不太确定它属于哪个论坛。 我正在尝试使用 PHP 和 shell 脚本从 Github fork 并构建一个 Android 项目。基本上,我正
最近,我开始在带有 Oracle Java 8 的 Docker 容器中使用 Jenkins。使用 Gradle 构建项目时,我收到以下错误消息: UnsatisfiedLinkError: linu
我正在尝试基于 Freemind 构建 Freeplane 派生,请参阅:https://github.com/razvan-panda/nixpkgs/blob/freeplane/pkgs/app
这个问题在这里已经有了答案: Failed to load native library 'libnative-platform.so' for Linux amd64 (7 个答案) 关闭 4 年
添加这个并没有解决我的问题implementation(“com.facebook.fresco:nativeimagetranscoder:3.0.0”)。但这解决了我使用Android Studi
我是一名优秀的程序员,十分优秀!