以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  金字塔内存奔溃的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=181150)

--  作者:人生如棋
--  发布时间:2020/7/12 7:44:55
--  金字塔内存奔溃的问题

本模型设置了12组引用统计数据,统计计算2年的时候,内存告警,但是这个时候,物理内存还有可用内存,空余内存也有。请问是什么问题。


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200712074006.png
图片点击可在新窗口打开查看


--  作者:独孤求败
--  发布时间:2020/7/12 10:33:24
--  

    你看到的可用内存只是操作系统给出的空闲内存,并不是真正意义上的可用内存,一个程序的实际占用内存应该是 工作内存+虚拟内存 ,实际上你看到的内存占用操作系统只是统计了 工作内存 而已。

稍微懂一点操作系统常识的人应该知道,软件的内存占用都是有实际内存和虚拟内存2项内容的,虚拟内存是非活动内存,也就是操作系统判断你的某个内存区不太频繁使用,于是就把他以虚拟内存的方式写在硬盘上并把这块内存空间给腾出来给其他应用程序使用,只有用户操作某个功能时触发到虚拟内存的区域时,这时操作系统就会将虚拟内存重新调回到实际内存当中去。如果操作系统的空闲内存小于了虚拟内存,此时就会导致金字塔软件无法正常申请到可用内存而导致软件崩溃。

    我们以严谨的态度对待此问题时,会将虚拟内存也作为工作内存一起予以计算,因为我们也不知道用户什么时候操作什么功能就会触发到虚拟内存的调用。

 

    那么我们如何去看金字塔实际上的使用内存呢,我们以WIN10为例,打开任务管理器,并且还至详细信息栏,其中软件的实际内存占用是 工作内存+提交大小 2项,如下图展示:(若没有显示提交大小列,鼠标右键表头选择“选择列”功能)

图片点击可在新窗口打开查看

 

          

 

            若是WIN7系统,那么是这2项

 


图片点击可在新窗口打开查看此主题相关图片如下:tim截图20180904181842.png
图片点击可在新窗口打开查看

 

 

     最后提醒一下,你电脑上安装的内存多并不表示软件就能全部用到,操作系统对一个软件上能用的内存是有限度的,并不能无限制使用到最大。你可以在任务管理器上,看一下 工作集内存+提交大小 这2项一共是多少,一般超过10G后软件可能就出现无法再正常申请内存的情况,建议开启多个金字塔进程来解决此问题。


--  作者:人生如棋
--  发布时间:2020/7/12 16:22:53
--  
这个问题如何解决,是添加内存条,还是换win10,还是金字塔就支持10g?
--  作者:无为剑
--  发布时间:2020/7/12 16:47:50
--  
1,10G以上内存占用后会导致不稳定这个是操作系统的问题,不是金字塔就只能支持10G,如果更换WIN10后情况可能会有好转。
2,可以增加内存条,但是你要考虑开多个金字塔来分散运行。
3,建议从数据和代码逻辑上进行优化,减少内存的占用

--  作者:人生如棋
--  发布时间:2020/7/12 18:22:45
--  
1.3条没有问题了。
关于第2条,
多个金字塔来分散运行,不明白意思,我的问题主要是绘制曲线需要用多个stkindi()函数叠加运算后的结果,只能在一个金字塔上绘制,那么这个多开金字塔是可以让金字塔用更多的内存吗? 
--  作者:叶飞
--  发布时间:2020/7/12 21:13:54
--  
如果只能在一个金字塔下运行那就没什么好办法了,你只能考虑优化算法,升级到win10系统,增加内存条,后再看看了。 此外即便你增加内存条后,也要记得尽可能多重启操作系统,因为你这么频繁的使用内存,会造成大量的内存碎片,重启系统可以让系统自动整理碎片,增加运行稳定性