gpt4 book ai didi

windows - 动态调整缓存以适应可用内存

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:35 25 4
gpt4 key购买 nike

有没有办法在用户空间实现动态自适应缓存?我希望我的程序分配使用可用物理内存的公平份额的高速缓存。如果系统用完了物理内存,缓存应该按照程序的选择被删除,并且在任何情况下都不应该被换出。最好不需要特殊权限,因此不必实际锁定内存。该程序应该知道页面已换出,因此不会使用它们。总而言之,它应该像在内核中实现的缓存和缓冲区一样工作。你能指出一般的想法和 API 如何做到这一点吗?我感兴趣的平台是 Linux 和 Windows。

最佳答案

为什么您认为有任何合理的方式来定义“公平份额”?当应用程序试图了解太多信息时,这并不是一个真正好的用户体验:更好的办法是找到一个合理的、最小默认值,并为用户提供一个配置选项来调整它。更好的做法是向用户提供统计信息,以显示当前大小的缓存的运行状况 - 越大并不总是越好。

Linux 中没有“合作内存管理”API——内核无法告诉用户空间使用更少的内存。我能想到的最接近的是(相对较新的)内存 cgroup Controller 可以在达到内存限制时提供一个“通知程序”(而不是 OOM 杀死分配过程。)这不是很好用,但话又说回来,任何这样的接口(interface)都会与竞争/死锁倾向调情。使用 mincore 进行轮询可能在有些做作/受限的情况下有效,但鉴于该应用无法理解不断变化的系统范围内存需求,它不会很好地工作。

关于windows - 动态调整缓存以适应可用内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8916577/

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