𝟩 𝗛𝗶𝗱𝗱𝗲𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗕𝗼𝘁𝘁𝗹𝗲𝗻𝗲𝗰𝗸𝘀 𝗔𝗻𝗱 𝗛𝗼𝘄 𝗧𝗼 𝗙𝗶𝘅 𝗧𝗵𝗲𝗺

ನಿಧಾನಗತಿಯ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಕೆಟ್ಟ ಅಲ್ಗಾರಿದಮ್‌ಗಳಿಂದಾಗಿ ವಿಫಲವಾಗುವುದು ಅಪರೂಪ. ನಿಮ್ಮ ಕೋಡ್ ಬ್ರೌಸರ್‌ನೊಂದಿಗೆ ಹೇಗೆ ಸಂವಹನ ನಡೆಸುತ್ತದೆ ಎಂಬ ಕಾರಣದಿಂದ ಅವು ವಿಫಲವಾಗುತ್ತವೆ.

ನಾನು 300 ಪ್ರೊಡಕ್ಷನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಪ್ರೊಫೈಲ್ ಮಾಡಿದ್ದೇನೆ. 73% ಕಾರ್ಯಕ್ಷಮತೆಯ ಸಮಸ್ಯೆಗಳು ಈ 7 ಮೂಲಗಳಿಂದ ಬರುತ್ತವೆ.

  1. Layout thrashing ನೀವು ಒಂದು ಪ್ರಾಪರ್ಟಿಯನ್ನು ಓದಿದಾಗ (read), DOM ಗೆ ಬರೆದಾಗ (write), ಮತ್ತು ಮತ್ತೆ ಓದಿದಾಗ ಇದು ಸಂಭವಿಸುತ್ತದೆ. ಇದು ಬ್ರೌಸರ್ ಅನ್ನು ಪದೇ ಪದೇ ಲೇಔಟ್ ಅನ್ನು ಮರುಹಣಿಸಲು (recalculate) ಒತ್ತಾಯಿಸುತ್ತದೆ.
  1. Unbounded event listeners ಇವೆಂಟ್ ಲಿಸನರ್ ಅನ್ನು ತೆಗೆದುಹಾಕದೆ ಸೇರಿಸುವುದು ಮೆಮೊರಿ ಸೋರಿಕೆಗಳಿಗೆ (memory leaks) ಕಾರಣವಾಗುತ್ತದೆ. ಇದು ಸಿಂಗಲ್-ಪೇಜ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ (single-page apps) ದೊಡ್ಡ ಸಮಸ್ಯೆಯಾಗಿದೆ.
  1. Synchronous DOM reads in loops ಲೂಪ್‌ನ ಒಳಗಡೆ offsetWidth ಅಥವಾ getBoundingClientRect ಅನ್ನು ಓದುವುದು ನಿರಂತರ ರಿಫ್ಲೋಗಳನ್ನು (reflows) ಉಂಟುಮಾಡುತ್ತದೆ.
  1. Missing requestAnimationFrame batching ಸ್ಕ್ರಾಲ್ ಅಥವಾ ರಿಸೈಜ್ ಇವೆಂಟ್‌ಗಳ ಸಮಯದಲ್ಲಿ ನೇರವಾದ DOM ಬದಲಾವಣೆಗಳು ಅತಿ ಹೆಚ್ಚು ಬಾರಿ ಸಂಭವಿಸುತ್ತವೆ. ಇದು 'jank' ಉಂಟುಮಾಡುತ್ತದೆ.
  1. Large JSON.parse payloads ದೊಡ್ಡ ಫೈಲ್‌ಗಳನ್ನು ಪಾರ್ಸ್ ಮಾಡುವುದು ಮೇನ್ ಥ್ರೆಡ್ ಅನ್ನು (main thread) ಬ್ಲಾಕ್ ಮಾಡುತ್ತದೆ. ಇದು ಇನ್‌ಪುಟ್ ವಿಳಂಬಕ್ಕೆ (input lag) ಕಾರಣವಾಗುತ್ತದೆ.
  1. Complex CSS selector matching ಆಳವಾಗಿ ನೆಸ್ಟೆಡ್ (nested) ಅಥವಾ ಸಂಕೀರ್ಣ ಸೆಲೆಕ್ಟರ್‌ಗಳು ಸ್ಟೈಲ್ ಮರುಹಣಿಕೆಯನ್ನು (style recalculations) ನಿಧಾನಗೊಳಿಸುತ್ತವೆ.
  1. Duplicate bundle chunks ದೊಡ್ಡದಾದ, ಅನ್‌ಆಪ್ಟಿಮೈಸ್ಡ್ ಬಂಡಲ್‌ಗಳು ವರ್ಗಾವಣೆ ಸಮಯವನ್ನು ವ್ಯರ್ಥ ಮಾಡುತ್ತವೆ.

ನಿಮ್ಮ ಪ್ರಗತಿಯನ್ನು ಅಳೆಯುವುದು ಹೇಗೆ:

ಈ ಕ್ಷೇತ್ರಗಳನ್ನು ಸರಿಪಡಿಸುವುದರಿಂದ ನಿಮ್ಮ Core Web Vitals ಸುಧಾರಿಸುತ್ತದೆ, ವಿಶೇಷವಾಗಿ Largest Contentful Paint ಮತ್ತು Interaction to Next Paint.

ಮೂಲ: https://dev.to/kui_luo/how-to-find-and-fix-7-hidden-performance-bottlenecks-in-your-javascript-code-ek5