将39567865个未签名字符加载到RAM:有效方法? 我正在研究C++项目,我需要快速访问字节值。 我用内存映射文件做了很多实验,对数据进行了智能排序,以便只需读取很少的数据,等等。 我就是不能让它工作得足够快和可靠。在某些情况下,文件中的磁盘访问和查找似乎是瓶颈
我现在正在考虑将整个字节数据(无符号字符)加载到RAM中。 但是,它是39567865个未签名字符。它可以在我的电脑上工作,但我希望它可以在所有电脑上工作将39567865个未签名字符加载到RAM:有效方法? 我正在研究C++项目,我需要快速访问字节值。 我用内存映射文件做了很多实验,对数据进行了智能排序,以便只需读取很少的数据,等等。 我就是不能让它工作得足够快和可靠。在某些情况下,文件中的磁盘访问和查找似乎是瓶颈,c++,optimization,storage,C++,Optimization,Storage,我现在正在考虑将整个字节数据(无符号字符)加载到RAM中。 但是,它是39567865个未签名字符。它可以在我的电脑上工作,但我希望它可以在所有电脑上工作 有人能告诉我我的方法是否疯狂吗?换句话说:普通软件(不是在超级计算机上运行的某种科学方法)可以将如此大量的数据加载到RAM中,以便快速访问,这是有效的?字符的宽度为1字节,因此 39567865 / 1024 = 38,640 kb 这大约是37.7 Mb。除非你打算在内存非常少的嵌入式机器上工作,否则你会没事的。仅供参考:您正在使用的机器
有人能告诉我我的方法是否疯狂吗?换句话说:普通软件(不是在超级计算机上运行的某种科学方法)可以将如此大量的数据加载到RAM中,以便快速访问,这是有效的?字符的宽度为1字节,因此
39567865 / 1024 = 38,640 kb
这大约是37.7 Mb。除非你打算在内存非常少的嵌入式机器上工作,否则你会没事的。仅供参考:您正在使用的机器很可能有4-8GB的RAM,内存消耗约为其中的0.4%-0.8%。字符宽度为1字节,因此
39567865 / 1024 = 38,640 kb
这大约是37.7 Mb。除非你打算在内存非常少的嵌入式机器上工作,否则你会没事的。参考:您正在使用的机器很可能有4-8GB的RAM,您的内存消耗约为其中的0.4%-0.8%。在今天常见的Win32(或win64)机器上,将100M文件加载到内存是完全公平的,甚至比其他选择更可取
一般的答案取决于您设置的系统要求,以及程序的通常使用模式,如果它在几秒钟内以几十个副本的形式启动,则可以考虑其他方式。在今天常见的Win32(或win64)机器上,将100M文件加载到内存是完全公平的,甚至比其他方法更可取
一般的答案取决于您设置的系统要求,以及该程序的通常使用模式,如果它在几秒钟内以几十个副本的形式启动,则可能会考虑其他方式。即约37.7 Mb,我不认为今天的PC无法在RAM上存储那么多内存:约37.7 Mb,我不认为今天的PC机不能在RAM:D上存储那么多内存