机器配置: CPU i5 内存 8G
进行参数优化测试时,只运行金字塔,无其他程序运行,优化开始前可用内存5G
此主题相关图片如下:1.jpg

总共优化数据量大概100000根K线,优化选择 节省内存运行模式。
此主题相关图片如下:2.jpg

优化大概300次后,可用内存变为2G,金字塔出现内存不足报警,优化无法继续。
此主题相关图片如下:3.jpg

问题:
1. 为何在可用内存还有2G时金字塔就出现内存不足报警?
2. 优化已经选择“节省内存运行模式”,金字塔只需保存每次优化的最终结果,而不必保存其他数据,每优化完一次都可以释放内存,理论上来说每次优化占用内存极少,为何优化300次就已经用了3G内存,10000次的优化按这个比例即使100G内存也无法完成。
[此贴子已经被作者于2018/9/9 11:07:54编辑过]
要看你的PEL公式是如何编写的了,如果你里面使用了大量的跨周期指标和数据引用,那么是非常消耗内存的。
另外你只看到了活动内存,没有看到处于虚拟内存下的不常活动内存,需要2个加起来才是金字塔的实际使用内存。
为了减小大内存使用时出现的崩溃异常,金字塔不会把你的机器内存全部都消耗完毕才报警,必须留一些内存给操作系统还有其他软件,否则你的计算机可能会蓝屏。
建议你升级你的机器内存或者查找PEL公式的编写问题,找出消耗内存的原因
1. 内存还有2G就报出现内存不足报警,停止优化,这预留的也太多了吧。
2.公式中是有大量的跨周期指标和数据引用,优化时单次测试消耗大量内存可以理解。但优化已经选择“节省内存运行模式”,金字塔只需保存每次优化的最终结果,而不必保存其他数据,每优化完一次都可以释放内存,假如单次测试要100M内存,每次测试完后也应该是可以释放掉的,不应该随着优化次数的增加而增加。
现在观察到的现象是随着优化次数的增加内存使用线性增长,基本上是优化进行到100次时使用1G内存,200次时使用2G,300次时使用3G。
[此贴子已经被作者于2018/9/11 21:23:18编辑过]
http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=140417&page=1&star=1 这里有相关解释
重点参考 常见问题1、为什么我的内存还有剩余,但是在64位金字塔确报无内存可用了?
优化已经选择“节省内存运行模式”,内存使用仍随着优化次数的增加而大量增加,按这个使用量优化1000次 10G内存都不够,这个影响更大,怎么解决?