首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析和优化PureData补丁程序和外部程序

分析和优化PureData补丁程序和外部程序
EN

Stack Overflow用户
提问于 2016-03-15 21:12:17
回答 2查看 168关注 0票数 1

我一直在做一个用Pd构建的合成器,并在BeagleBone Black上运行。为此,我编写了一些抽象和两个外部变量。现在synth是单声道的,在启动时使用100%的CPU,导致许多声音点击和人工制品。大约5秒后,它“稳定”到75%的CPU,延迟和声音都很好。

现在,我需要使合成复调,以便CPU时间必须释放出来,为额外的声音。为此,我正在考虑使用调试符号构建Pd,并通过诸如Callgrind/KCacheGrind之类的分析器运行我的补丁,试图找出CPU消耗最多的地方,并围绕此进行优化。

有没有人可以分享一些用来优化Pd补丁和外部的技巧或技巧?对于这类任务,有没有专门针对Pd的工具?为什么我的方法会或不会起作用?

EN

回答 2

Stack Overflow用户

发布于 2016-11-19 19:18:39

你的补丁似乎执行起来很繁重。这意味着当你运行合成器时,任何时候你都在做大量的计算。这是哪种合成器?

通常,减少计算成本的一种方法是固定值,首先计算,一次性计算。(例如,如果您总是使用相同的值,那么在数组上读取它而不是在任何时候计算它可能会很有趣)。你可以告诉我们更多关于你的程序的架构,也许我们可以更具体地帮助你。

祝你好运!

票数 1
EN

Stack Overflow用户

发布于 2016-03-18 05:22:07

当然,使用完整的profiler-tools也是一个选择。主要的缺点是,它们将大大降低系统的速度,因此您可能需要一个完全自动化的测试用例(而不是依赖于环境的实时特性)。

至于补丁内分析,Pd提供的最好的是[realtime]对象,您可以使用它来测量在消息域中执行特定操作所需的时间(挂钟时间,而不是逻辑时间,它应该为零)。但是,这不适用于信号对象!!

下面是一个分析子树(在[pd complicated]子补丁中)和一些选择对象(在[pd complex]子补丁中)的完整执行的示例。

根据您的描述,您的补丁似乎在初始化期间花费了大量时间( CPU耗尽,因此需要一段时间才能降到100%以下),这很可能表明消息域存在问题。

至于信号域,典型的问题包括重新分块到小块大小([block~ 1]),以及计算未使用的声音(如果它们添加到信号输出中,则使用[switch~]将其关闭)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36012335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档