在学习"汇编语言"(在x86架构上的linux中,使用GNU作为汇编程序)的同时,一个令人振奋的时刻是使用system calls的可能性.这些系统调用非常方便,有时甚至是作为程序runs in user-space所必需的
我想说的是:我目前正在实现一个编译器(用于一个大学项目),我想添加的额外功能之一是支持多线程代码,以提高编译程序的性能.因为一些多线程代码将由编译器本身自动生成,这几乎可以保证其中也会有非常微小的多线程代码.为了获得性能上的胜利,我必须确保使用线程能够实现这一点.
然而,我担心的是,为了使用线程,我会进行系统调用和必要的中断.因此,微小的(自动生成的)线程将受到执行这些系统调用所需时间的高度影响,这甚至可能导致性能损失...
my question is therefore twofold (with an extra bonus question underneath it):
- 可以编写汇编程序吗
- 如果我有非常小的线程(与线程的总执行时间一样小)、性能损失,或者根本不值得付出努力,那么我会获得性能提升吗?
我的猜测是,在没有系统调用的情况下,多线程汇编代码是not种可能的.即使是这样,您是否有尽可能高效地实现线程的建议(或更好的建议:一些真正的代码)?