linux 中的动态库时序和 CPU 负载分析
Dynamic library timing and CPU load analysis in linux
我正在用一个动态库写代码。
当我使用 dlopen/dlsym 调用来访问库函数时,与使用 -l
动态链接库并直接访问函数相比,cpu 加载和执行更多。
任何人都可以帮助理解为什么会这样吗?
静态 linking 需要更多时间,i/o 在 link 时间,因为所有绑定都发生在 linking 期间。结果是一个可执行文件,无需进一步处理即可调用库代码。
动态加载需要在运行时进行更多工作。它必须查找 .so
文件,打开它,并绑定引用的地址,所有这些都在第一次调用它之前完成。您正在测量的是预期的和正常的。
我正在用一个动态库写代码。
当我使用 dlopen/dlsym 调用来访问库函数时,与使用 -l
动态链接库并直接访问函数相比,cpu 加载和执行更多。
任何人都可以帮助理解为什么会这样吗?
静态 linking 需要更多时间,i/o 在 link 时间,因为所有绑定都发生在 linking 期间。结果是一个可执行文件,无需进一步处理即可调用库代码。
动态加载需要在运行时进行更多工作。它必须查找 .so
文件,打开它,并绑定引用的地址,所有这些都在第一次调用它之前完成。您正在测量的是预期的和正常的。