Memory leaks 用4D编写的内存泄漏示例
用4D编程语言编写的开发人员创建的内存泄漏示例有哪些 由开发人员创建的内存泄漏,我指的是由糟糕的编程造成的内存泄漏,通过更好的编程可以避免Memory leaks 用4D编写的内存泄漏示例,memory-leaks,out-of-memory,4d-database,Memory Leaks,Out Of Memory,4d Database,用4D编程语言编写的开发人员创建的内存泄漏示例有哪些 由开发人员创建的内存泄漏,我指的是由糟糕的编程造成的内存泄漏,通过更好的编程可以避免 32位 当在32位应用程序中运行时,一旦尝试分配超过2^32字节(4 GB)的内存,它最终会崩溃。如果在Mac OS X平台上,VM区域摘要下方的崩溃报告底部应显示大约3.7 GB的内存值: 总共3.7克 64位 当在64位应用程序中运行时,代码将继续增加分配的内存量,并且不会稳定,在这种情况下,操作系统最终会抱怨内存不足: 概述 开发人员可以通过多种方
32位 当在32位应用程序中运行时,一旦尝试分配超过2^32字节(4 GB)的内存,它最终会崩溃。如果在Mac OS X平台上,
VM区域摘要下方的崩溃报告底部应显示大约3.7 GB的内存值:
总共3.7克
64位
当在64位应用程序中运行时,代码将继续增加分配的内存量,并且不会稳定,在这种情况下,操作系统最终会抱怨内存不足:
概述
开发人员可以通过多种方式创建自己的内存泄漏。列出了您想要避免的大部分内容
- 使用变量时使用
清除变量
- 使用集合时使用
清除集合
- 使用命名选择完成后,请使用
清除命名选择
- 使用列表时使用
清除列表
- 使用BLOB或使用
清除变量时,使用设置BLOB大小
将BLOB大小重新调整为0
- 使用数组或使用
CLEAR变量时,将数组大小重新调整为0
不要忘记关闭任何打开的XML树,如XML、DOM、SVG等(DOMClose XML
,SVG\u CLEAR
)
- 如果使用ODBC,请务必记住使用
ODBC\u SQLFreeConnect
- 确保清理所有使用的屏幕外区域
例子
以下是开发人员创建的内存泄漏的两个具体示例:
忘记关闭XML
错误代码:
忘记清除列表
错误代码:
Repeat
$xmlRef:=DOM Create XML Ref("root")
Until (<>crashed_or_quit)
Repeat
$xmlRef:=DOM Create XML Ref("root")
DOM CLOSE XML($xmlRef)
Until (<>crashed_or_quit)
Repeat
$listRef:=New list
Until (<>crashed_or_quit)
Repeat
$listRef:=New list
CLEAR LIST($listRef;*)
Until (<>crashed_or_quit)