gpt4 book ai didi

c++ - 调用 exe 性能成本(与 DLL 相比)

转载 作者:行者123 更新时间:2023-11-28 05:25:42 24 4
gpt4 key购买 nike

我们讨论了在 C 或 C++ 代码中使用 exe 而不是 DLL 的可能性。这个想法是,在某些情况下使用 exe 并将参数传递给它。 (我猜它相当于以某种方式加载它的主要功能,就好像它是一个 DLL)。
我们想知道的问题是它是否意味着性能成本(尤其是在具有多次迭代的循环中)。
我试图查看现有线程,但没有人回答这个特定问题。我看到从 DLL 调用函数有一个第一次调用的开销,但随后的调用将只需要 1 或 2 条指令
对于 exe 案例,它每次都需要创建一个单独的进程,以便它可以运行。(第二个进程,如果我需要打开一个可以打开它的 shell,但根据我的研究,我可以做到它无需调用 shell)。我猜这个过程的创建应该会消耗一些性能。此外,我认为 exe 将每次加载到 RAM 中,在进程结束时销毁,然后重新加载以供下一次调用等等。 DLL 不存在(?)的问题。
PS:我们更多的是在理论层面讨论这个问题而不是实现它,这是一个为了学习而提出的问题。

最佳答案

与从 DLL 调用函数相比,运行 exe 的成本是巨大的。如果您可以使用 DLL 来完成它,那么在性能很重要的情况下您应该这样做。

当然,可能还有其他因素需要考虑:比如调用的代码有bug,导致进程崩溃,如果是exe,只是那个exe挂了,调用者幸存下来,但如果错误在 DLL 中,调用者也会崩溃。

关于c++ - 调用 exe 性能成本(与 DLL 相比),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40583747/

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