NAG 算法库:动态链接与静态链接

动态链接与静态链接:您应该如何选择?

如果您是在 Windows 环境中开发应用系统,希望开发数值程序时更为简单,且希望采用值得信赖的算法库,例如 NAG 算法库,此刻您也许会有疑问: 我应该使用 NAG 动态链接库还是静态链接库呢?在此,我们会为您说明何者版本适合您。

由于 NAG 算法库包含了超过 1,600 多个函数,您所开发的应用系统都可能会调用到大部分的函数。无论如何,您几乎不可能调用到所有 NAG 提供的函数。 为了满足不同环境客户的需求,NAG 提供静态与动态链接二个版本。

在 Windows 环境中的 DLL 就如同 UNIX 环境中的共享式算法库。DLL 的全名是 Dynamic Link Library。所谓 "动态",意即算法库中所有的组件在运行时才会被加载,而不是与用户的应用程序绑在一起。 这同时也意味着只有一个组件存在内存中,即便是这个组件可以被不同的程序使用。 使用静态链接库开发应用系统时,函数的组件是存在于程序内部,而且仅仅程序会使用到的部分。 精确的说,每一个程序只会运行自己内部包含的函数;透过动态链接方式,NAG 的函数是与用户的程序分开存在的。

一般说来是在内存空间与运行速度间进行取舍的。使用动态链接版本。你所承担的副作用是算法库会全部被加载到内存中,即使你只需要其中一个函数。 然而,你的程序是比较小的,因为它并未包含你所调用的函数码。 此外、各种不同的应用程序可以使用相同的 NAG 算法库。当然,每一个用到函数的程序都需要将 DLL 加载到内存中,但是,这取决于多少应用程序或多少用户会需要同时使用 NAG 算法库,透过 DLL 版本也许还可以减少内存的使用量。

如果你开发一个调用 NAG 算法库的应用程序,且需要将其布署到每一个使用者的环境,那么 NAG 的静态链接库也许是比较适合的选择,因为程序中只需要链接所需的 NAG 函数。 如果你想要开发一个提供单机使用或者商业应用的应用系统,NAG 可以为您量身订制一个合适的动态链接库,仅仅包含您所需要的函数,能够让您更方便于布署。 当然,如果你部属一个使用 NAG 函数的应用程序到其他计算机环境中,那些环境仍然需要拥有 NAG 的软件授权。

总而言之,如果您的应用程序在服务器中仅会提供少数人使用,或者由多人共享使用,那么 NAG 的 DLL 版本会是较佳的选择。 如果您的应用程序最终会应用于各个桌上计算机,则 NAG 静态链接库会是比较好的选择。对于大量布署商业用途的程序,您可以向我们询问有关客制化的 DLL 版本,我们可以提供符合您需求的解决方案。 我们的讨论至此。如果您有任何问题,欢迎 联系我们