游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9194|回复: 17

一个很讨厌的内存溢出检测的问题

[复制链接]

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2009-8-8 21:57:00 | 显示全部楼层 |阅读模式
我现在脚本库用的是python,可是这Py_Finalize()有内存不能完全释放的问题,官方网站上也确认了这个bug,而且居然说:尽可能不要重复初始化和释放python环境,保证只有一次初始化和释放,那点memory leak 可以忽略,我靠,这是什么态度嘛,太牵强,太不严谨了,python做了那么多年应该很成熟了,这样的缺陷竟然解决不了的吗?

这可以忍了,可我的程序用了严格的内存memory leak detect
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

每次debug退出的时候一大堆的内存丢失警告,看着很不爽,更讨厌的是,除了python之外的,自己写的没正常释放的警告也混入其中,扰乱我的视线

有没有办法关掉对程序中某部分的内存丢失的检测?

我看了看

normal block
crt block
free block
ignore block
等等...

难道要从底层的malloc内存block 类型分配方面去屏蔽掉某些内存检测的吗?

有没有什么简单的方法做到:哪些部分不想去检测就关掉它,只是关闭部分模块的内存检测?
很想关闭python里面的内存检测

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2009-8-9 00:11:00 | 显示全部楼层

Re:一个很讨厌的内存溢出检测的问题

记得开启了crt的内存检测,还需要重载new操作符才能真正有溢出检查。
所以不需要检测的模块就不使用重载后的new操作符,这样应该能达到你的目的。

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2009-8-9 00:24:00 | 显示全部楼层

Re:一个很讨厌的内存溢出检测的问题

没用,不需要重载new,一样能检测出来的。

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-8-9 09:21:00 | 显示全部楼层

Re:一个很讨厌的内存溢出检测的问题

我使用lua做脚本

或者自己做脚本也行  下载个lex&yacc

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2009-8-9 12:08:00 | 显示全部楼层

Re:一个很讨厌的内存溢出检测的问题

我选择python主要是boost导出c++对象方面支持的很清爽,开发效率高

2

主题

123

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2009-8-9 15:15:00 | 显示全部楼层

Re:一个很讨厌的内存溢出检测的问题

记得04年时就听说python的脚本引擎有内存泄露,现在都09年了,还没改好啊……

幸好我没用过python,不过不是因为这个bug,而是因为它太慢了,比其他脚本语言慢一个数量级……

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2009-8-9 15:34:00 | 显示全部楼层

Re:一个很讨厌的内存溢出检测的问题

担心python慢,真的很多余,指望拿脚本来做什么?
复杂的工作都在引擎内部去做,脚本只是胶水语言,绝不能拿来做复杂的处理
把握这个原则,程序中每帧都去调用也慢不到哪里去
倒是如果脚本和C++程序之间若存在大量的数据传值拷贝,用什么脚本都慢

选python主要是看好boost能很方便的把对象指针或引用直接传到python去使用,有效避免数据拷贝的问题

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-8-9 17:11:00 | 显示全部楼层

Re:一个很讨厌的内存溢出检测的问题

下载个 lex&yacc

自己写一个类似QBASIC的脚本编译器

内部实现由自己把握

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2009-8-9 17:37:00 | 显示全部楼层

Re:一个很讨厌的内存溢出检测的问题

厉害,楼上用这个神器自己写脚本编译器?
如果时间允许的话,我会去研究研究。

2

主题

123

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2009-8-9 18:53:00 | 显示全部楼层

Re: Re:一个很讨厌的内存溢出检测的问题

tonykee: Re:一个很讨厌的内存溢出检测的问题

担心python慢,真的很多余,指望拿脚本来做什么?
复杂的工作都在引擎内部去做,脚本只是胶水语言,绝不能...


脚本语言都支持传指针吧……难道传个引擎对象还要把引擎复制一份不成
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-20 11:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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