动态语言如何决定为变量分配多少内存? 例如。编译器如何在没有太多内存开销的情况下将variable = 5更改为variable =“xxx”?它什么时候使用硬件堆栈?它何时使用内存堆?动态语言和变量分配
1
A
回答
4
编译器为每个变量分配足够的内存来存放指针加上语言运行库需要的任何元数据。但我认为你的意思是询问为每个对象分配了多少内存。在这种情况下,答案是它取决于对象的类型。当一个变量被赋值给一个不同的对象时,与该变量相关的指针会改变它指向的内容。
1
当然,答案因语言而异 - 托管动态语言和低级实现语言。这适用于Perl并不一定适用于Python,也不适用于Tcl适用于Java或LISP或......它们是否被视为动态语言。
在Perl中,有一个名为SV(标量变量)的C级结构,其中包含不同版本的变量值的不同存储。这些往往是以堆为基础的;字符串的存储总是以堆为基础,尽管从未转换为字符串的纯数字值可能在严格在堆栈中的SV中。在Perl中,这些东西都是引用计数的(并且是mortalized,或永久化的,以及各种其他有趣的术语)。更复杂的类型(AV,HV,RV等)基于SV。
相关问题
- 1. Ruby动态构建和分配变量
- 2. 动态分配表变量?
- 3. 速度模板语言动态变量
- 4. 动态变量创建语言
- 5. .NET和动态语言
- 6. 动态分配的变量大小
- 7. C++ - 动态分配变量的范围
- 8. 动态分配变量在Matlab
- 9. 将动态url分配给变量
- 10. 分配动态多维变量
- 11. Java动态var分配给变量
- 12. 对象分配与动态变量
- 13. 分配动态变量来重塑idvar
- 14. 将动态值分配给变量
- 15. 分配实例变量静态变量
- 16. 分配一个变量来动态分配返回值?
- 17. Windows Phone IsolatedStorageSettings:容量和动态分配
- 18. 变迁语言变量
- 19. Vaadin portlet的动态语言变化
- 20. 动态改变对讲语言?
- 21. 数据表动态地改变语言
- 22. 分配的动态变量名一旦多个变量
- 23. 动态分配和返回一个局部变量
- 24. 对齐的成员变量和动态分配
- 25. 如何创建动态变量和分配数据
- 26. 分配在$。每次循环动态变量和在jquery的
- 27. 声明一个类的内部变量和分配值动态
- 28. 动态分配不变
- 29. 动态变量和
- 30. 以动态类型语言(如Ruby)命名变量