Function 内存中函数调用

Function 内存中函数调用,function,memory,call,Function,Memory,Call,什么是内存中的函数调用?有人能给我指一些讨论这种技术及其优点的资源吗。我需要更多地了解他们,目前不知道该去哪里。谷歌似乎帮不上忙,因为它把我带到了认知和神经系统等领域。假设你的解释性评论是正确的(我必须查看你问题的原始来源才能确定。)这可能是(a)函数绑定时间或(b)的问题 函数绑定 当程序启动时,链接器/加载器会在可执行文件中查找文件中无法解析的所有函数引用。它搜索所有链接库以查找缺少的函数,然后进行迭代。至少Linuxld.so(8)linker/loader支持两种操作模式:ld\u BI

什么是内存中的函数调用?有人能给我指一些讨论这种技术及其优点的资源吗。我需要更多地了解他们,目前不知道该去哪里。谷歌似乎帮不上忙,因为它把我带到了认知和神经系统等领域。

假设你的解释性评论是正确的(我必须查看你问题的原始来源才能确定。)这可能是(a)函数绑定时间或(b)的问题

函数绑定

当程序启动时,链接器/加载器会在可执行文件中查找文件中无法解析的所有函数引用。它搜索所有链接库以查找缺少的函数,然后进行迭代。至少Linux
ld.so(8)
linker/loader支持两种操作模式:
ld\u BIND\u NOW
强制在程序启动时解析所有符号引用。这对于发现错误是非常好的,这意味着首次使用函数与重复使用函数相比不会受到惩罚。它可以大大增加应用程序加载时间。如果现在没有
LD\u BIND\u
,函数将根据需要进行解析。这对于链接到大型库的小程序来说是非常好的,因为它只能解决所需的少数函数,但对于大型程序来说,这可能需要在程序的生命周期内反复从磁盘重新加载库,这可能会在应用程序运行时严重影响响应时间

按需分页


现代操作系统内核的作用不仅仅是物理内存。每个应用程序都认为它可以访问一台具有4G内存(对于32位应用程序)或更多内存(对于64位应用程序)的整个机器,而不管机器中实际安装的物理内存量如何。内存的每一页都需要一个后备存储器,如果该页必须在内存压力下从物理内存中取出,则将使用该驱动器空间来存储该页。如果它是纯数据,则会将其存储在交换分区或交换文件中。如果它是可执行代码,那么它将被简单地删除,因为如果需要,将来可以从文件中重新加载它。请注意,这并不是在逐个函数的基础上发生的,而是在页上发生的,页是硬件相关的特性。想想看,在大多数32位平台上4096字节,在其他架构上可能或多或少,在特殊框架下,超过2兆字节或4兆字节。如果有一个缺少页面的引用,将发出一个
页面错误的信号,内核将从磁盘加载缺少的页面并重新启动进程。

假设您的解释性评论是正确的(我必须查看问题的原始来源才能确知…)这可能是(a)或(b)的问题函数绑定时间或(b)

函数绑定

当程序启动时,链接器/加载器会在可执行文件中查找文件中无法解析的所有函数引用。它搜索所有链接库以查找缺少的函数,然后进行迭代。至少Linux
ld.so(8)
linker/loader支持两种操作模式:
ld\u BIND\u NOW
强制在程序启动时解析所有符号引用。这对于发现错误是非常好的,这意味着首次使用函数与重复使用函数相比不会受到惩罚。它可以大大增加应用程序加载时间。如果现在没有
LD\u BIND\u
,函数将根据需要进行解析。这对于链接到大型库的小程序来说是非常好的,因为它只能解决所需的少数函数,但对于大型程序来说,这可能需要在程序的生命周期内反复从磁盘重新加载库,这可能会在应用程序运行时严重影响响应时间

按需分页


现代操作系统内核的作用不仅仅是物理内存。每个应用程序都认为它可以访问一台具有4G内存(对于32位应用程序)或更多内存(对于64位应用程序)的整个机器,而不管机器中实际安装的物理内存量如何。内存的每一页都需要一个后备存储器,如果该页必须在内存压力下从物理内存中取出,则将使用该驱动器空间来存储该页。如果它是纯数据,则会将其存储在交换分区或交换文件中。如果它是可执行代码,那么它将被简单地删除,因为如果需要,将来可以从文件中重新加载它。请注意,这并不是在逐个函数的基础上发生的,而是在页上发生的,页是硬件相关的特性。想想看,在大多数32位平台上4096字节,在其他架构上可能或多或少,在特殊框架下,超过2兆字节或4兆字节。如果存在缺少页面的引用,则将发出
页面错误的信号,内核将从磁盘加载缺少的页面并重新启动进程。

您能更好地指定您的意思吗?你是在哪里读到这个术语的?正如我所理解的:如果一个程序或一组程序非常大,在运行时,它们被分配了内存,这应该是按功能分配的。这意味着,对于一组活动程序,一些函数在内存中(这意味着调用很快),而其他函数不在内存中,因此调用较慢。这样做的目的是一次只调用(尽可能多地)内存中的函数。6个问题,没有公认的答案?@Joe,这算什么?不知道为什么会对这个问题发表这样的评论。修正了几个问题。至于其他方面,我真的对答案不满意。谢谢提醒。这是一个基于问题和答案的网站。如果你得到了好的答案,他们应该被接受。我不是说它应该是100%,但0%意味着