本人c++菜鸟,在做一个将三维模型切片的算法,我的做法是一开始将三维模型整个读取进内存,然后在内存中处理分层,分层结果也存储在内存中。这样处理会出现一个问题,当三维模型过大,且层数过多的时候,出现内存不够(占用几个G)的情况。但据我观察,那些商用的软件,同样的模型和层数,内存不会超过几百M。所以我的做法肯定有问题,请问大神,我这样的情况要怎么处理,或者说一般软件是如何处理大量数据文件的。
http://www.cnblogs.com/edisonlovecola/p/CuraEngineSlicing.html
可以参考这个试试。。。
可以开启文件映射, 先将中转数据写在文件映射区域中, 当内存使用过大时, 系统会自动进行内存交换, 这样应该可以解决内存问题, 同时速度也不会很慢..
mmap()映射,
没开发过Windows, 你可以试试看这篇博客中的内容, http://www.cnblogs.com/fangyukuan/archive/2010/09/09/1822216.html