金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 318|回复: 14

画线的全周期共享有内存bug

[复制链接]

84

主题

154

帖子

154

积分

等级: 免费版

注册:
2021-11-5
曾用名:
发表于 2025-3-22 15:01 | 显示全部楼层 |阅读模式
画线的全周期共享有内存bug,可能不开启这个功能也有问题,只是不明显

开启全周期共享,在框架的多窗口中画线,反复切换多个周期,这样内存就会不断增加,但是删除对应窗口所有画线应该释放对应内存才对,否则内存增加后就不会释放了,明显代码处理逻辑有bug

截图202503221500069938.png 截图202503221500334349.png
回复

使用道具 举报

3

主题

718

帖子

759

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2025-3-24 08:49 | 显示全部楼层
目前没有测试到,建议你上传提供setting目录下的Draw1.drw文件给我们分析下。
回复

使用道具 举报

84

主题

154

帖子

154

积分

等级: 免费版

注册:
2021-11-5
曾用名:
 楼主| 发表于 2025-3-27 11:34 | 显示全部楼层
这个问题是在晚上看外盘小纳指时发现的,经过反复测试,,不画线也有这个问题,
1一个框架6个窗口看同一个品种,加载公式后,运行时间久一点,半天吧,每个窗口都会经常切换周期,感觉那个内存不断上涨,一直不释放,或者增加的多,释放的少,明显有问题
经常到96%内存占用率,就和上面的那个图片差不多,必须把框架关闭重开才能正常,但是时间一长,还是内存一直变大,不知道怎么回事
我想了一下是不是公式问题?我在序列模式中用了超全局变量,和这个有关系吗,是不是用了这个就不会释放内存?每次切换周期,都不会释放切换前周期K线的内存?这样一直累加导致的?
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-3-27 13:18 | 显示全部楼层
切换周期是不会释放内存的,只有关闭该框架才会释放的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

84

主题

154

帖子

154

积分

等级: 免费版

注册:
2021-11-5
曾用名:
 楼主| 发表于 2025-4-5 19:27 | 显示全部楼层
经过反复测试,内存还是容易爆满,目前我的是32G内存,我外盘的data目录总共就12G,小纳指所有分时数据顶多2G,我单框架6个窗口看1个品种,顶多就2G*6=12G,怎么可能实际运行时30G内存还不够用呢
这些是加载的分笔5s1m5m这种基础数据,就算加上公式计算过程的额外中间数据存储单元,也不可能那么多吧
强烈怀疑你们内存管理机制,就是公式计算过程的内存使用机制有问题,仅刷最后一根K线模式下,计算结束后,保留输出数据单元就行了,中间计算的内存数据应该释放以供下次触发公式计算时使用才对
显然肯定是没有及时释放以前跨周期引用计算过程中占用的内存导致的内存持续增大,那这样的话,就是96G内存128G内存,也迟早会满的,只是时间问题,内存应该重复使用才对,使用后及时回收
还有就是同一个窗口跨周期在两次计算中引用相同周期(例如17s)的数据,第一次加载的数据没有释放,第二次又重复加载一次对应周期的数据,内存都是这种重复的数据,一直到内存慢才能强制释放一部分?
这个公式计算对内存使用极大可能是有问题,希望金字塔开发能检视一下这部分功能代码
截图202504051911318068.png
回复

使用道具 举报

3

主题

718

帖子

759

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2025-4-6 19:05 | 显示全部楼层
建议你取消加载的指标后,测试这个现象是否还存在,或者加载一些简单系统指标排查问题。逐步排查缩小范围
回复

使用道具 举报

84

主题

154

帖子

154

积分

等级: 免费版

注册:
2021-11-5
曾用名:
 楼主| 发表于 2025-4-7 12:49 | 显示全部楼层
这个问题按照你的建议,再次做了测试验证,取消指标,加载简单系统,没有出现这么明显的内存问题
只要6个窗口加载这个跨周期引用的公式后,就会出现明显的内存增大问题,
限制3000根K线,计算200根K线左右,每根K线可能会用到10次跨不同周期引用公式结果,这种情况就会出现这种问题
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-4-7 13:10 | 显示全部楼层
大量的跨周期引用下,本身就会造成大量运算,这些计算结果都会保存在内存中的,内存占用就会较高的,这种也不是软件内存占用异常的情况啊。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

84

主题

154

帖子

154

积分

等级: 免费版

注册:
2021-11-5
曾用名:
 楼主| 发表于 2025-4-7 13:17 | 显示全部楼层
我说的问题不是说占用多,而是内存持续增长,你计算完一次后,应该释放很多中间过程申请的内存,或者可以重复使用的内存,不需要再下次计算时重新申请,这方面开发看看有没有问题,能不能优化的地方,
回复

使用道具 举报

3

主题

718

帖子

759

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2025-4-7 13:53 | 显示全部楼层
秒侠 发表于 2025-4-7 13:17
我说的问题不是说占用多,而是内存持续增长,你计算完一次后,应该释放很多中间过程申请的内存,或者可以重 ...

本地测试单纯的跨周期引用操作,不会造成内存持续性增加。如果你那里可以稳定重现这个现象,建议你提供可复现的测试代码,我们复现后排查。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-4-16 21:10 , Processed in 0.272848 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表