DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: liy187
今日帖子: 0
在线用户: 6
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 l_wming (L_Wming) ★☆☆☆☆ -
普通会员
2019/5/29 16:37:38
标题:
XE10.3开发程序运行长时间后出错Out of memory 浏览:1650
加入我的收藏
楼主: 有谁有遇到这个问题:
1、使用FireDAC查询
2、使用线程(FDConnect连接池)
监控内存变化没有溢出,没有持续增长
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2019/5/29 17:36:00
1楼: firedac最适合三层。如果你用datasnap做成中间件,就不必用内存池了,线程加内存,可能比较难操控。
----------------------------------------------
-
作者:
男 nickemma (N.E Zhou) ★☆☆☆☆ -
普通会员
2019/5/29 18:15:30
2楼: @l_wming
用老猫的说法:你是保密局的,就这样一个问题,怎么回答呢?

唯有猜咯:
1、查询语句是不是每次一样?
2、使用线程(FDConnect连接池),这句很难理解。不知道是启用了FireDac线程池?还是用线程去启动FireDac
3、监控内存没有溢出?但是退出产生Out of memory。那或许是出错的语句占用内存很小,你看不出来。

我猜你应该是查询的语句应该是不同的,或许某个特定的查询语句丢在线程里面执行,又没有把错误通知主程序,所以你没有发现错误,导致退出时候出错。

建议:
查询语句使用:
try
  try
  finally
    释放你该释放的东西
  end; 
except
  把出错通知出去,可以Log.d,线程可以通知主线程等等
end;

这样你就知道问题所在。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行26.85547毫秒 RSS