Node.js V8 Engine

V8 Engine இன் கட்டமைப்பு மற்றும் Node.js ஐ வேகமாக்கும் வழிகளைக் கற்றுக்கொள்ளுங்கள்

V8 Engine என்றால் என்ன?

V8 engine என்பது Google இன் திறந்த மூல JavaScript engine ஆகும், இது Chrome மற்றும் Node.js ஆகியவற்றால் பயன்படுத்தப்படுகிறது.

இது வேகமான இயக்கத்திற்காக JavaScript ஐ இயந்திர குறியீட்டிற்கு தொகுக்கிறது.

தோற்றம்

2008 இல் Chrome க்காக Google மூலம் உருவாக்கப்பட்டது

ஒருங்கிணைப்பு

Node.js சேவையகத்தில் JavaScript இயக்க நேரத்தை வழங்க V8 ஐப் பயன்படுத்துகிறது

அம்சங்கள்

Just-In-Time தொகுப்பு, திறமையான குப்பை சேகரிப்பு, ES6+ ஆதரவு

ஏன் V8 Node.js ஐ வேகமாக்குகிறது

Just-In-Time (JIT) தொகுப்பு

அதை விளக்குவதற்குப் பதிலாக JavaScript ஐ தேர்வுமுறை செய்யப்பட்ட இயந்திர குறியீட்டிற்கு மாற்றுகிறது

மறைக்கப்பட்ட வகுப்புகள்

JavaScript பொருள்களில் பண்பு அணுகலை தேர்வுமுறை செய்கிறது

திறமையான குப்பை சேகரிப்பு

கசிவுகளைத் தடுக்கவும் செயல்திறனைத் தேர்வுமுறை செய்யவும் நினைவகத்தை நிர்வகிக்கிறது

Inline Caching

பொருள் பண்புகளை எங்கு கண்டுபிடிப்பது என்பதை நினைவில் வைத்து பண்பு அணுகலை வேகப்படுத்துகிறது

உதாரணம்: Node.js இல் V8 பதிப்பைச் சரிபார்க்கவும்

// உங்கள் Node.js நிறுவலில் பயன்படுத்தப்படும் V8 engine பதிப்பைக் காட்டு
console.log(`V8 version: ${process.versions.v8}`);

Node.js இல் V8 இன் பங்கைப் புரிந்துகொள்வது

V8 Node.js கட்டப்பட்டுள்ள முக்கிய JavaScript இயக்க சூழலை வழங்குகிறது.

இது Node.js க்கு அனுமதிக்கிறது:

உதாரணம்: V8 நினைவக பயன்பாடு

// V8 இன் heap நினைவக பயன்பாட்டைப் பற்றிய தகவலைப் பெறவும்
const v8 = require('v8');
const heapStats = v8.getHeapStatistics();

console.log('Heap size limit:', (heapStats.heap_size_limit / 1024 / 1024).toFixed(2), 'MB');
console.log('Total heap size:', (heapStats.total_heap_size / 1024 / 1024).toFixed(2), 'MB');
console.log('Used heap size:', (heapStats.used_heap_size / 1024 / 1024).toFixed(2), 'MB');

V8 இன் புதுப்பிப்பு சுழற்சி

V8 புதிய JavaScript அம்சங்கள் மற்றும் செயல்திறன் தேர்வுமுறைகளுடன் தொடர்ந்து மேம்படுத்தப்பட்டு வருகிறது.

V8 ECMAScript மற்றும் WebAssembly தரங்களை செயல்படுத்துகிறது.

ஒரு புதிய JavaScript அம்சம் ECMAScript தரத்தின் ஒரு பகுதியாக மாறும் போது, V8 இறுதியில் அதை செயல்படுத்தும், இது Chrome மற்றும் Node.js இரண்டிலும் கிடைக்கும்.

🚀 செயல்திறன் உதவிக்குறிப்பு:

V8 இன் JIT தொகுப்பு JavaScript குறியீட்டை நேரடியாக இயந்திர குறியீட்டிற்கு தொகுக்கிறது, இது விளக்கப்பட்ட குறியீட்டை விட 10-100 மடங்கு வேகமாக இயங்க அனுமதிக்கிறது. இதுதான் Node.js ஐ அதிக போக்குவரத்து சேவையகங்களுக்கு சிறந்ததாக்குகிறது.

V8 கட்டமைப்பு கண்ணோட்டம்

Parser

JavaScript மூலத்தை எடுத்து Abstract Syntax Tree (AST) ஆக மாற்றுகிறது

Ignition Interpreter

AST ஐ bytecode ஆக மாற்றி ஆரம்ப இயக்கத்தை வழங்குகிறது

TurboFan Compiler

அடிக்கடி பயன்படுத்தப்படும் bytecode ஐ அதிவேக இயந்திர குறியீட்டிற்கு தேர்வுமுறை செய்கிறது

Orinoco Garbage Collector

நினைவகத்தைத் தானாகவே நிர்வகித்து குப்பை சேகரிக்கிறது

பயிற்சி

V8 பதிப்பை அச்சிட குறியீட்டை முடிக்கவும்:

console.log(process.______.v8);
versions
✓ சரி! process.versions பொருள் Node.js மற்றும் அதன் கூறுகளின் பதிப்புகளைக் கொண்டுள்ளது
version
✗ தவறு! process.version Node.js பதிப்பை மட்டுமே கொண்டுள்ளது, V8 பதிப்பு அல்ல
v8
✗ தவறு! process.v8 நேரடியாக இல்லை, process.versions.v8 பயன்படுத்தவும்
engine
✗ தவறு! process.engine என்பது சரியான பண்பு அல்ல, process.versions பயன்படுத்தவும்