• 2207阅读
  • 4回复

[提问]QT 使用内存映射可以处理多大的文件? [复制链接]

上一主题 下一主题
离线woniu蜗牛
 

只看楼主 倒序阅读 楼主  发表于: 2020-03-19
新手想问一下,QT 使用内存映射可以处理多大的文件,超过多大的文件需要进行分块映射呢?
离线hitler++

只看该作者 1楼 发表于: 2020-03-19
std::cout << std::numeric_limits<size_t>::max() << std::endl;

运行看看就知道
离线woniu蜗牛

只看该作者 2楼 发表于: 2020-03-20
回 hitler++ 的帖子
hitler++:std::cout << std::numeric_limits<size_t>::max() << std::endl;
运行看看就知道 (2020-03-19 20:36) 

打印出来是4294967295,达到4T了。这就是它的虚拟内存空间大小吗,还是只是编译器能处理的最大数值?
离线woniu蜗牛

只看该作者 3楼 发表于: 2020-03-20
系统的虚拟内存是4g的话,低于4g的文件都可以用map直接处理吗?
离线20091001753

只看该作者 4楼 发表于: 2020-03-20
程序并不知道,某段内存是虚拟的,或是真实的。
因为虚拟内存实际上是操作系统的概念。

对程序来说内存没有真假之分。
所以你也不能指明某段数据些往虚拟内存。

如果你遇到的问题是,需要处理的数据很大,但物理内存又很少。
你可以把任务切割,自己创建缓冲文件。
(づ ̄ 3 ̄)づ
快速回复
限100 字节
 
上一个 下一个