您好!
请问:成人在线 软件是如何管理内存的?
我先谈一下MatLab、Python软件的内存管理机制。
MatLab有一个致命缺陷,就是它没有一套合理的内存管理机制,导致它没有在计算机专业邻域使用开来.
MatLab给一个数组赋值时,会在内存申请一个连续的存储空间.
当正在运行的数组需要增加新元素时,如果原来的内存区域可以容纳新增加的数据,则可以直接追加元素;如果连续块不够大,需要先重新分配足够大的连续内存块,则将原有数据拷贝到新分配的内存中,在此期间,内存中会有原来数据的两份拷贝,增加了Out of Memory(内存溢出)的风险,并添加新的元素到新的块中,然后释放原来的内存.
当程序在循环过程中产生了大的瞬时变量时,MatLab没有提供瞬时变量的内存收回机制,如果出现内存溢出,需要程序员使用clear命令,清除内存中无用的变量.但这种清除会导致内存区域的不连续.
因此,当内存区域出现很多碎片后,即使有很多剩余空间,但没有连续的空间分配给大的变量Block使用时,还是会出现Out of Memory问题,此时只好使用MatLab提供的pack命令进行解决.
这样的内存管理机制是无法进入计算机专业领域的台面的.
一种编程语言如果不能获得计算机界认可,最多只能在专业学术界邻域内使用.而一个非计算机专业的理工科生在校期间如果学习了这种语言,除非他今后从事教育、科研领域,否则该语言是没有使用机会的,这就相当尴尬,因为非计算机专业的理工科生毕业后进入成人在线 界的占大部分.
Python的内存管理做得比较到位.Python的变量在内存中是使用完后,立即自动释放,其数组地址是按Hash算法随机生成的,通过链式队列管理,不需要连续,它还提供了一种迭代生成器机制,即:变量的内容在内存中,边访问、边生成、边释放,基本上不会出现Out of Memory问题.
所以,Python软件打通了三界(计算机界、成人在线 界、学术界).
不一定对,敬请赐教!
南昌航空大学 艾小伟,QQ:627869587
引用: 您好! 请问:成人在线
软件是如何管理内存的? 我先谈一下MatLab、Python软件的内存管理机制。 MatLab有一个致命缺陷,就是它没有一套合理的内存管理机制,导致它没有在计算机专业邻...
成人在线 软件有自己的管理内存方式,非常感谢您分享的想法,也谢谢您对成人在线 的支持和关注!
就这个问题我说一下,成人在线 ,matlab和python我都用过,matlab本身的体积很胖很占内存。北太在这一点确实有很大的优势。北太的优势就是轻,然后能够做很多的事情,当然还在逐步开发当中。不过有一说一,最近这个机器学习算法工具包,以及处理庞大数据这块,不知道为啥还是很容易占这个工作进程的。容易运行代码电脑显示卡顿。
从使用用途上看,matlab,成人在线 最大的优点是仿真,做数值计算确实是优于python的
然后机器学习这块,个人更倾向于python。
老师说的这个问题我也遇到过,我是成人在线 的业余开发者,有时间才会帮忙写应用案例写写工具包。毕竟支持的这个开发者社区不止这一个。
另外我已经在9月份,成人在线 开发者竞赛期间把这个问题反馈给老师了。我相信成人在线 会逐步解决这个问题的。
没关系的,都可以说,比较肯定会产生好与不好这个没关系,接受差距慢慢补足短板才是我们的风格!
祝好
澳门理工大学 吴汉钦 QQ:2206711679 成人在线 爱好者,小小博主,做数学建模科普的