midiOutPrepareHeader 是一个快速调用吗?

发布于 2024-07-15 05:31:37 字数 121 浏览 4 评论 0 原文

midiOutPrepareHeader、midiInPrepareHeader 是否只是设置一些数据字段,还是执行了一些更耗时的操作?

我正在尝试决定是根据需要构建和销毁 MIDIHDR,还是维护它们的池。

Does midiOutPrepareHeader, midiInPrepareHeader just setup some data fields, or does it do something that is more time intensive?

I am trying to decide whether to build and destroy the MIDIHDR's as needed, or to maintain a pool of them.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

往事风中埋 2024-07-22 05:31:38

您实际上只有两种方法可以判断(没有 Windows 源代码):

1) 分析它。 根据您对所需时间的发现,设置一个仅限调试范围的计时器,当它突然花费的时间超过您认为应用程序可接受的时间时进行记录,或者执行您的池解决方案。 尽管文档说一旦调用准备函数就不要修改缓冲区,并且似乎如果您想重新使用它,您可能必须修改它。 我对文档不够熟悉,无法说您提出的解决方案是否有效。

2) 单步执行装配并查看。 别害怕。 获取 MSFT 公共符号,看看它是否看起来只是在填充外字段或者它正在做一些复杂的事情。

You really have only two ways to tell (without the Windows source):

1) Profile it. Depending on your findings for how long it takes, have a debug-only scoped timer that logs when it suddenly takes longer than what you think is acceptable for your application, or do your pool solution. Though the docs say not to modify the buffer once you call the prepare function, and it seems if you wanted to re-use it you may have to modify it. I'm not familiar enough with the docs to say one way or the other if your proposed solution would work.

2) Step through the assembly and see. Don't be afraid. Get the MSFT public symbols and see if it looks like it's just filling out fields or if it's doing something complicated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文