Memory leaks 用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位应用程序中运行时,代码将继续增加分配的内存量,并且不会稳定,在这种情况下,操作系统最终会抱怨内存不足: 概述 开发人员可以通过多种方

用4D编程语言编写的开发人员创建的内存泄漏示例有哪些

由开发人员创建的内存泄漏,我指的是由糟糕的编程造成的内存泄漏,通过更好的编程可以避免


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)