동적 언어는 변수에 할당 할 메모리 양을 어떻게 결정합니까? 예. 컴파일러는 너무 많은 메모리 오버 헤드없이 variable = 5를 variable = "xxx"로 어떻게 변경합니까? 언제 하드웨어 스택을 사용하고 언제 메모리 힙을 사용합니까?동적 언어 및 변수 할당
1
A
답변
4
컴파일러는 각 변수에 포인터가 들어갈 수있는 충분한 메모리와 언어 런타임에 필요한 메타 데이터를 할당합니다. 하지만 각 메모리에 얼마나 많은 메모리가 할당되어 있는지 묻고 싶습니다. 오브젝트. 이 경우 대답은 객체 유형에 따라 다릅니다. 변수가 다른 객체에 할당되면 해당 변수와 연결된 포인터가 포인터의 의미를 변경합니다.
1
답변은 물론 언어에 따라 달라집니다 - 호스트 된 동적 언어와 저수준 구현 언어 둘 다. 펄에 적용되는 것은 파이썬에 반드시 적용되는 것은 아니며 Tcl에 적용되는 것이 자바 나 LISP에 적용 되는가 아니면 ... 음, 동적 언어로 간주 되나요?
Perl에는 SV 값 (스칼라 변수)이있는 C 레벨 구조가 있는데, 변수 값의 다른 버전에 대해 다른 저장소가 포함되어 있습니다. 이들은 종종 힙 기반입니다. 문자열에 대한 저장소는 항상 힙 기반으로 끝나지 만, 문자열로 변환 된 적이없는 순수한 숫자 값은 엄격하게 스택에있는 SV에있을 수 있습니다. 펄에서는 이러한 것들이 참조 카운트 (그리고 mortalized, 또는 불후의, 그리고 다른 종류의 다른 흥미로운 용어)입니다. 더 복잡한 유형 (AV, HV, RV 등)은 SV를 기반으로합니다.
관련 문제
- 1. 로컬 및 동적 할당
- 2. 클래스의 변수/상수로 동적 값 할당
- 3. 복사 생성자 및 동적 할당
- 4. 변수 할당
- 5. 동적 변수 및
- 6. 변수 할당 및 결과 표시
- 7. 문자열 할당 및 인스턴스 변수
- 8. array_multisort 및 동적 변수 옵션
- 9. IOC 및 동적 매개 변수
- 10. jQuery 동적 함수 및 변수
- 11. JMX 포트 동적 할당
- 12. 동적 데이터베이스 이름 및 스키마/소유자 할당
- 13. 정적 할당 대 동적 할당 대 자동 할당
- 14. 크로스 언어 및 서버 http 세션 변수
- 15. 동적 변수 이름
- 16. PHP 클래스 변수 재 할당
- 17. Zend_Db_Select 변수 할당 및 하위 쿼리
- 18. 동적 메모리 할당 교재?
- 19. 동적 메모리 할당
- 20. 동적 GPU의 메모리 할당
- 21. BPEL 2.0의 동적 할당
- 22. C++ 동적 메모리 할당
- 23. 동적 메모리 할당 문제
- 24. 동적 메모리 할당
- 25. VB6에서의 동적 메모리 할당
- 26. 동적 메모리 할당
- 27. Matlab의 동적 값 할당
- 28. C에서의 동적 메모리 할당
- 29. 동적 유형의 언어 (예 : Ruby)의 변수 이름 지정
- 30. Objective-C 멤버 변수 할당?