動態語言如何決定爲變量分配多少內存? 例如。編譯器如何在沒有太多內存開銷的情況下將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)命名變量