gpt4 book ai didi

c++ - 如何知道指针是否在物理内存中,否则会触发页面错误?

转载 作者:IT王子 更新时间:2023-10-28 23:33:50 27 4
gpt4 key购买 nike

如果我有一个指针并且我关心内存访问性能,我可能会检查它的下一个操作是否会触发页面错误。如果可以,可以设计一种算法,以便对循环操作进行重新排序,以最大限度地减少页面错误。

是否有任何可移植(或 linux/windows 不可移植)的方法来检查特定内存地址的访问是否会触发页面错误?

最佳答案

大约十年前,Emery Berger 提出了一种 VM 感知垃圾收集策略,该策略要求应用程序知道哪些页面存在于内存中。出于测试目的,他和他的学生制作了一个内核补丁,该补丁使用实时信号通知分页事件的应用程序,允许垃圾收集器维护自己的常驻页面数据库。 (虽然这看起来像是重复劳动,但它比多次系统调用要高效得多,以便在每次需要时获取信息。)

您可以在他的 research page 上找到有关这项有趣研究的信息。 .

据我所知,最近的 Linux 内核还没有实现这个补丁,但总有可能复活它。

关于c++ - 如何知道指针是否在物理内存中,否则会触发页面错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37764417/

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