北太天元答疑集

标签: 下载

北太天元客服 2022-09-26 14:22:11

将大家使用北太天元软件常提问的问题和相关解答整理成了答疑集,供大家参考学习。

点击下载【北太天元答疑集】

1591 2 2 收藏 回复

回复

艾老师 2023-07-03 #1

       您好!

       请问:北太天元软件是如何管理内存的?

       我先谈一下MatLab、Python软件的内存管理机制。

       MatLab有一个致命缺陷,就是它没有一套合理的内存管理机制,导致它没有在计算机专业邻域使用开来.

       MatLab给一个数组赋值时,会在内存申请一个连续的存储空间.

       当正在运行的数组需要增加新元素时,如果原来的内存区域可以容纳新增加的数据,则可以直接追加元素;如果连续块不够大,需要先重新分配足够大的连续内存块,则将原有数据拷贝到新分配的内存中,在此期间,内存中会有原来数据的两份拷贝,增加了Out of Memory(内存溢出)的风险,并添加新的元素到新的块中,然后释放原来的内存.

      当程序在循环过程中产生了大的瞬时变量时,MatLab没有提供瞬时变量的内存收回机制,如果出现内存溢出,需要程序员使用clear命令,清除内存中无用的变量.但这种清除会导致内存区域的不连续.

      因此,当内存区域出现很多碎片后,即使有很多剩余空间,但没有连续的空间分配给大的变量Block使用时,还是会出现Out of Memory问题,此时只好使用MatLab提供的pack命令进行解决.

      这样的内存管理机制是无法进入计算机专业领域的台面的.

       一种编程语言如果不能获得计算机界认可,最多只能在专业学术界邻域内使用.而一个非计算机专业的理工科生在校期间如果学习了这种语言,除非他今后从事教育、科研领域,否则该语言是没有使用机会的,这就相当尴尬,因为非计算机专业的理工科生毕业后进入企业界的占大部分.

      Python的内存管理做得比较到位.Python的变量在内存中是使用完后,立即自动释放,其数组地址是按Hash算法随机生成的,通过链式队列管理,不需要连续,它还提供了一种迭代生成器机制,即:变量的内容在内存中,边访问、边生成、边释放,基本上不会出现Out of Memory问题.

      所以,Python软件打通了三界(计算机界、企业界、学术界).

      不一定对,敬请赐教!                                                       

                                                                                                                                               南昌航空大学   艾小伟,QQ:627869587

北太天元客服 2023-07-04 #2
引用:       您好!       请问:北太天元软件是如何管理内存的?       我先谈一下MatLab、Python软件的内存管理机制。       MatLab有一个致命缺陷,就是它没有一套合理的内存管理机制,导致它没有在计算机专业邻...

北太天元软件有自己的管理内存方式,非常感谢您分享的想法,也谢谢您对北太天元的支持和关注!

回复

重置 提交