Memory footprint
ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತನ್ನು ಪ್ರೋಗ್ರಾಂ ಬಳಸುತ್ತಿರುವ ಮುಖ್ಯ ಮೆಮೊರಿಯ ಪ್ರಮಾಣ ಅಥವಾ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ಉಲ್ಲೇಖಗಳನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಹೆಜ್ಜೆಗುರುತು ಎಂಬ ಪದವು ಸಾಮಾನ್ಯವಾಗಿ ಒಂದು ವಸ್ತುವು ಆವರಿಸಿರುವ ಭೌತಿಕ ಆಯಾಮಗಳ ವ್ಯಾಪ್ತಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಇದು ಅದರ ಗಾತ್ರದ ಅರ್ಥವನ್ನು ನೀಡುತ್ತದೆ. ಕಂಪ್ಯೂಟಿಂಗ್ನಲ್ಲಿ, ಸಾಫ್ಟ್ವೇರ್ ಅಪ್ಲಿಕೇಶನ್ನ ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತು ಅದರ ರನ್ಟೈಮ್ ಮೆಮೊರಿ ಅವಶ್ಯಕತೆಗಳನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಆದರೆ ಪ್ರೋಗ್ರಾಂ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ. ಇದು ಎಲ್ಲಾ ರೀತಿಯ ಸಕ್ರಿಯ ಮೆಮೊರಿ ಪ್ರದೇಶಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಉದಾಹರಣೆಗೆ ಕೋಡ್ ವಿಭಾಗವು (ಹೆಚ್ಚಾಗಿ) ಪ್ರೋಗ್ರಾಂ ಸೂಚನೆಗಳನ್ನು (ಮತ್ತು ಸಾಂದರ್ಭಿಕವಾಗಿ ಸ್ಥಿರಾಂಕಗಳು), ಡೇಟಾ ವಿಭಾಗ (ಪ್ರಾರಂಭಿಸಿದ ಮತ್ತು ಪ್ರಾರಂಭಿಸದ ಎರಡೂ), ಹೀಪ್ ಮೆಮೊರಿ, ಕಾಲ್ ಸ್ಟ್ಯಾಕ್, ಜೊತೆಗೆ ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಡೇಟಾ ರಚನೆಗಳನ್ನು ಹಿಡಿದಿಡಲು ಅಗತ್ಯವಾದ ಮೆಮೊರಿ, ಉದಾಹರಣೆಗೆ ಚಿಹ್ನೆ ಕೋಷ್ಟಕಗಳು, ಡೀಬಗ್ ಮಾಡುವ ಡೇಟಾ ರಚನೆಗಳು, ತೆರೆದ ಫೈಲ್ಗಳು, ಪ್ರಸ್ತುತ ಪ್ರಕ್ರಿಯೆಗೆ ಮ್ಯಾಪ್ ಮಾಡಲಾದ ಹಂಚಿಕೆಯ ಗ್ರಂಥಾಲಯಗಳು, ಇತ್ಯಾದಿ, ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಾಗ ಯಾವಾಗಲೂ ಅಗತ್ಯವಿರುತ್ತದೆ ಮತ್ತು ಇಡೀ ರನ್ ಸಮಯದಲ್ಲಿ ಕನಿಷ್ಠ ಒಮ್ಮೆಯಾದರೂ ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ. ದೊಡ್ಡ ಪ್ರೋಗ್ರಾಂಗಳು ದೊಡ್ಡ ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತುಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ. ಅಪ್ಲಿಕೇಶನ್ನ ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತುಗಳು ಅದು ಲೋಡ್ ಮಾಡುವ ಹಂಚಿಕೆಯ ಗ್ರಂಥಾಲಯಗಳು ಅಥವಾ ವರ್ಗಗಳ ಸಂಖ್ಯೆ ಮತ್ತು ಗಾತ್ರಗಳಿಗೆ ಸರಿಸುಮಾರು ಅನುಪಾತದಲ್ಲಿರುತ್ತವೆ, ಆದರೆ ಸ್ಥಿರ ಗ್ರಂಥಾಲಯಗಳು, ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಪ್ರೋಗ್ರಾಂಗಳು ಮತ್ತು ಸ್ಥಿರ ದತ್ತಾಂಶ ಪ್ರದೇಶಗಳು ಸ್ಥಿರ (ಸ್ಥಿರ) ಭಾಗಕ್ಕೆ ಕೊಡುಗೆ ನೀಡುತ್ತವೆ. ಪ್ರೋಗ್ರಾಂಗಳು ತಮ್ಮ ಸ್ವಂತ ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತುಗಳಿಗೆ ಹೆಚ್ಚಿನ ಭಾಗವನ್ನು ನೀಡುವುದಿಲ್ಲ; ಬದಲಿಗೆ, ರನ್-ಟೈಮ್ ಪರಿಸರದಿಂದ ಪರಿಚಯಿಸಲಾದ ರಚನೆಗಳು ಹೆಚ್ಚಿನ ಮೆಮೊರಿಯನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ. ಉದಾಹರಣೆಗೆ, ಸಿ + + ಕಂಪೈಲರ್ ವಿಟೇಬಲ್ಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ, ಮಾಹಿತಿ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ಟೈಪ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಪ್ರೋಗ್ರಾಂನ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯದಲ್ಲಿ ಸಕ್ರಿಯವಾಗಿರುವ ಅನೇಕ ತಾತ್ಕಾಲಿಕ ಮತ್ತು ಅನಾಮಧೇಯ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ. ಜಾವಾ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ, ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತು ಪ್ರಧಾನವಾಗಿ ಜಾವಾ ವರ್ಚುವಲ್ ಮೆಷಿನ್ (ಜೆವಿಎಂ) ರೂಪದಲ್ಲಿ ರನ್ಟೈಮ್ ಪರಿಸರದಿಂದ ಮಾಡಲ್ಪಟ್ಟಿದೆ, ಇದು ಜಾವಾ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿದಾಗ ಪರೋಕ್ಷವಾಗಿ ಲೋಡ್ ಆಗುತ್ತದೆ. ಇದಲ್ಲದೆ, ಹೆಚ್ಚಿನ ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ, ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯುವ ಡಿಸ್ಕ್ ಫೈಲ್ಗಳನ್ನು ಸಹ ಅಪ್ಲಿಕೇಶನ್ನ ವಿಳಾಸದ ಜಾಗದಲ್ಲಿ ಓದಲಾಗುತ್ತದೆ, ಇದರಿಂದಾಗಿ ಅದರ ಹೆಜ್ಜೆಗುರುತುಗಳಿಗೆ ಕೊಡುಗೆ ನೀಡಲಾಗುತ್ತದೆ. ಬಳಕೆಯ ಪ್ರವೃತ್ತಿ 1990 ರ ದಶಕದಲ್ಲಿ, ಕಂಪ್ಯೂಟರ್ ಮೆಮೊರಿ ಅಗ್ಗವಾಯಿತು ಮತ್ತು ದೊಡ್ಡ ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತುಗಳನ್ನು ಹೊಂದಿರುವ ಪ್ರೋಗ್ರಾಂಗಳು ಸಾಮಾನ್ಯವಾದವು. ಈ ಪ್ರವೃತ್ತಿಯು ಹೆಚ್ಚಾಗಿ ಕಂಪ್ಯೂಟರ್ ಸಾಫ್ಟ್ವೇರ್ನ ವ್ಯಾಪಕ ಬಳಕೆಯಿಂದಾಗಿ, ದೊಡ್ಡ ಪ್ರಮಾಣದ ಮೆಮೊರಿಯನ್ನು ಬಳಸುವ ದೊಡ್ಡ ಉದ್ಯಮ-ವ್ಯಾಪಕ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಂದ (ಡೇಟಾಬೇಸ್ಗಳಂತಹವು), ಮೆಮೊರಿ ತೀವ್ರವಾದ ಮಲ್ಟಿಮೀಡಿಯಾ ಬರವಣಿಗೆ ಮತ್ತು ಎಡಿಟಿಂಗ್ ಸಾಫ್ಟ್ವೇರ್ನವರೆಗೆ. ನಿರಂತರವಾಗಿ ಹೆಚ್ಚುತ್ತಿರುವ ಮೆಮೊರಿ ಅಗತ್ಯಗಳನ್ನು ನಿಭಾಯಿಸಲು, ವರ್ಚುವಲ್ ಮೆಮೊರಿ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಪರಿಚಯಿಸಲಾಯಿತು, ಅದು ಲಭ್ಯವಿರುವ ಮೆಮೊರಿಯನ್ನು ಸಮಾನ ಗಾತ್ರದ ಭಾಗಗಳಾಗಿ ವಿಭಜಿಸುತ್ತದೆ ಮತ್ತು ಹಾರ್ಡ್ ಡಿಸ್ಕ್ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ "ಪುಟಗಳಿಂದ" ಅಗತ್ಯವಿದ್ದಾಗ ಅವುಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ. ಬೃಹತ್-ಸ್ಮರಣೆ-ಹೆಜ್ಜೆಗುರುತುಗಳನ್ನು ಹೊಂದಿರುವ ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಬೆಂಬಲಿಸುವ ಈ ವಿಧಾನವು ಸಾಕಷ್ಟು ಯಶಸ್ವಿಯಾಗಿದೆ. ಮೈಕ್ರೋಸಾಫ್ಟ್ ವಿಂಡೋಸ್, ಆಪಲ್ನ ಮ್ಯಾಕ್ಓಎಸ್ ಮತ್ತು ಲಿನಕ್ಸ್ ಮತ್ತು ಯುನಿಕ್ಸ್ನ ಎಲ್ಲಾ ಆವೃತ್ತಿಗಳು ಸೇರಿದಂತೆ ಹೆಚ್ಚಿನ ಆಧುನಿಕ ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಗಳು ವರ್ಚುವಲ್ ಮೆಮೊರಿ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ. ಎಂಬೆಡೆಡ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ ಸಾಂಪ್ರದಾಯಿಕವಾಗಿ, ಕಡಿಮೆ-ಮೆಮೊರಿ-ಹೆಜ್ಜೆಗುರುತು ಪ್ರೋಗ್ರಾಂಗಳು ಎಂಬೆಡೆಡ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಚಲಾಯಿಸಲು ಮಹತ್ವವನ್ನು ಹೊಂದಿದ್ದವು, ಅಲ್ಲಿ ಮೆಮೊರಿಯು ಸಾಮಾನ್ಯವಾಗಿ ನಿರ್ಬಂಧಿತ ಸಂಪನ್ಮೂಲವಾಗಿರುತ್ತದೆ-ಎಷ್ಟರಮಟ್ಟಿಗೆಂದರೆ ಡೆವಲಪರ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರೋಗ್ರಾಂ ಹೆಜ್ಜೆಗುರುತುಗಳನ್ನು ಲಭ್ಯವಿರುವ RAM ಗೆ ಹೊಂದಿಕೊಳ್ಳುವಷ್ಟು ಚಿಕ್ಕದಾಗಿಸಲು ದಕ್ಷತೆಯನ್ನು (ಸಂಸ್ಕರಣಾ ವೇಗ) ತ್ಯಾಗ ಮಾಡುತ್ತಾರೆ. ಉದಾಹರಣೆಗೆ, ಸನ್ ಮೈಕ್ರೋಸಿಸ್ಟಮ್ಸ್ ಅಂತಹ ನಿರ್ಬಂಧಿತ ಸಾಧನಗಳಿಗಾಗಿ ತನ್ನ ಜಾವಾ ವರ್ಚುವಲ್ ಮೆಷಿನ್ (ಜೆವಿಎಂ) ಆವೃತ್ತಿಯನ್ನು ಹೊರತಂದಿತು; ಇದು ಕೆವಿಎಂ ಹೆಸರಿನಿಂದ ಹೋಗುತ್ತದೆ. ಸಾಮಾನ್ಯ ಹೋಮ್ ಪಿಸಿ ಅಥವಾ ಹೆಚ್ಚು ಆಧುನಿಕ ಸ್ಮಾರ್ಟ್ ಸಾಧನಗಳಲ್ಲಿ ಲಭ್ಯವಿರುವ ಮೆಗಾಬೈಟ್ಗಳ (ಅಥವಾ ಗಿಗಾಬೈಟ್ಗಳ) ಮೆಮೊರಿಗೆ ವಿರುದ್ಧವಾಗಿ ಕಿಲೋಬೈಟ್ಗಳಲ್ಲಿರುವ ಮೆಮೊರಿ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಲ್ಲಿ ಕೆವಿಎಂ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಅಪ್ಲಿಕೇಶನ್ ಹೆಜ್ಜೆಗುರುತು ವರ್ಚುವಲ್ ಮೆಮೊರಿಯನ್ನು ಸಹ ನೋಡಿ, ಇದು ವಿವಿಧ ರೀತಿಯ ಕಂಪ್ಯೂಟರ್ ಡೇಟಾ ಸಂಗ್ರಹಣೆಯನ್ನು (ಯಾದೃಚ್ಛಿಕ-ಪ್ರವೇಶ ಮೆಮೊರಿ ಮತ್ತು ಡಿಸ್ಕ್ ಸಂಗ್ರಹಣೆಯಂತಹ) ವರ್ಚುವಲೈಸ್ ಮಾಡುವ ಮೆಮೊರಿ ನಿರ್ವಹಣಾ ತಂತ್ರವಾಗಿದೆ. ಉಲ್ಲೇಖಗಳ ಸಾಫ್ಟ್ವೇರ್ ಆಪ್ಟಿಮೈಸೇಶನ್