具有多个输出的jack音频程序在连接时会给ardour带来巨大的cpu负载

具有多个输出的jack音频程序在连接时会给ardour带来巨大的cpu负载,c,linux,sdl,signal-processing,jack,C,Linux,Sdl,Signal Processing,Jack,我正在使用jack创建一个音乐软件,它有多个输出16。当在我的程序中运行完整的dsp进程时,许多合成器、采样器等,cpu负载有点高,但几乎没有问题。这是当jack客户端的输出未连接或直接连接到声卡输出时 所以,当我启动Ardour并打开空模板时,没有插件或任何东西,cpu负载保持在5%的监控范围内,直到我将程序的输出连接到Ardour输入。在那之后,热情的cpu使用率上升到80-95%,并导致一切都变得不可用,即使我的程序没有处理太多东西。这没有任何意义,因为具有相同或更高数量插孔输出的pure

我正在使用jack创建一个音乐软件,它有多个输出16。当在我的程序中运行完整的dsp进程时,许多合成器、采样器等,cpu负载有点高,但几乎没有问题。这是当jack客户端的输出未连接或直接连接到声卡输出时

所以,当我启动Ardour并打开空模板时,没有插件或任何东西,cpu负载保持在5%的监控范围内,直到我将程序的输出连接到Ardour输入。在那之后,热情的cpu使用率上升到80-95%,并导致一切都变得不可用,即使我的程序没有处理太多东西。这没有任何意义,因为具有相同或更高数量插孔输出的puredata实例不会导致类似的cpu负载因插件而变空甚至变满

在我的程序中,所有的输出都在同一个jack回调函数中处理,这是multiout的正确方法吗?是什么导致了cpu峰值?我在linux测试机上使用rt内核,我的程序的gui是用SDL绘制的


这开始是一个非常酷的程序,但这个问题使它有点无法使用。

请提供代码说明您遇到的问题。为了提高性能,您应该尝试在分析器中运行它。。。如果您使用的是SDL1.3,并且图形非常密集,这可能是SDL1.3使用软件渲染的原因。afaikYou是否尝试连接到热情以外的其他东西进行比较?如果只是热情引起的麻烦,也许最好直接问。图形SDL1.2非常小,没有热情的连接运行得非常好。至于其他插孔连接,将程序的12个输出路由到audacity并全部记录,不会导致任何cpu峰值。我会试试Ardour论坛。好的,在Ardour开发者的帮助下解决了这个问题。我的程序在导致这种行为的dsp代码中的某个地方产生了非规范浮点。使用SSE指令禁用非规范浮动将完全消除高cpu负载。