gpt4 book ai didi

c - pthreads 与 ucontext 的性能特征

转载 作者:太空宇宙 更新时间:2023-11-04 04:53:00 24 4
gpt4 key购买 nike

我正在尝试将使用 ucontext 的库移植到支持 pthread 但不支持 ucontext 的平台。代码写得很好,因此用对 pthread 例程的调用替换对 ucontext API 的所有调用应该相对容易。但是,这是否会引入大量额外开销?或者这是一个令人满意的替代品。我不确定 ucontext 是如何映射到操作系统线程的,这个工具的目的是让协同程序的生成变得相当便宜和容易。

因此,问题是:用 pthread 调用替换 ucontext 调用是否会显着改变库的性能特征?

最佳答案

pthread 将使用系统调用,并略微使用一些管理内存。假设需要相同数量的系统调用,它应该与 ucontext 相当(我会天真地用 strace 检查一下)。

出于同样的原因,swapcontext() 比使用某些 longjmp 技巧要慢(请参阅 this page 以了解作者声称对其应用程序的性能影响为 7 倍的讨论)。

我不是这方面的专家,但我使用协程 spice-gtk 开发了一个库,并且我们有使用 ucontext/jmp、gthread 或 winfibers 的后端。我没有注意到任何性能变化,但这可能是因为该库通常受 IO 限制。

关于c - pthreads 与 ucontext 的性能特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13144044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com