- براؤزر کی حالت جیسی بھی ہو
- ایکسٹینشنز، پروفائل ہر مشین مختلف ہوتی ہے
- بگ دوبارہ پیدا نہیں ہوتا
سیشنز مفت ہیں — ادائیگی صرف ٹریفک کی کریں
JavaScript پروفائلنگ کے لیے کلاؤڈ براؤزر
اپنے سرورز پر Chrome چلائے بغیر ریموٹ Chromium میں JavaScript کی پروفائلنگ اور ڈیبگنگ کریں۔ Playwright یا Puppeteer کے ساتھ کنیکٹ کر کے صفحے کا اصل رویہ دوبارہ پیدا کریں اور کارکردگی کے مسائل کی چھان بین کریں۔
- اصل Chromium ماحول میں JavaScript کی پروفائلنگ کریں
- صفحے کی کارکردگی اور میموری کے استعمال کو چیک کریں
- Playwright یا Puppeteer کے ساتھ CDP کے ذریعے کنیکٹ کریں
JavaScript پروفائلنگ
ریموٹ Chromium میں
JavaScript کی پروفائلنگ کریں
اپنا صفحہ Floppydata کلاؤڈ براؤزر میں چلائیں اور اصل Chromium سیشن میں اس کی JavaScript کارکردگی چیک کریں۔ Chrome کو لوکل طور پر چلائے بغیر اپنے موجودہ کوڈ سے پیج لوڈ، نیویگیشن، کلکس اور دیگر انٹریکشنز ٹیسٹ کریں۔
const client = await page.context().newCDPSession(page);await client.send('Performance.enable');await page.goto('https://example.com');await page.click('#load-more');const { metrics } = await client.send('Performance.getMetrics'); JavaScript پروفائلنگ کے لیے کلاؤڈ براؤزر کیوں استعمال کریں؟
JavaScript کے مسائل کو دوبارہ پیدا کرنا مشکل ہو سکتا ہے۔ کوئی صفحہ ڈیولپر کی مشین پر عام طور پر چلتا ہے، مگر اقدامات کی کسی مخصوص ترتیب کے بعد سست ہو سکتا ہے، زیادہ میموری استعمال کر سکتا ہے یا مختلف انداز میں کام کر سکتا ہے۔
JavaScript پروفائلنگ کے لیے کلاؤڈ براؤزر کے ساتھ آپ ایک الگ Chromium سیشن میں وہی ورک فلو دوبارہ بنا سکتے ہیں اور دیکھ سکتے ہیں کہ صفحہ چلنے کے دوران کیا ہوتا ہے۔ سیشن شروع کریں، مسئلہ پیدا کرنے والے اقدامات دہرائیں اور نتائج چیک کریں۔ یہ ڈائنامک ویب سائٹس کے لیے خاص طور پر مفید ہے، جہاں JavaScript کے اجرا، صارف کے انٹریکشنز یا براؤزر کی حالت میں تبدیلی کے بعد کارکردگی بدل سکتی ہے۔
JavaScript کارکردگی کے مسائل اصل براؤزر میں تلاش کریں
جدید ویب سائٹس صفحہ پہلی بار لوڈ ہونے کے بہت بعد بھی JavaScript چلاتی رہتی ہیں۔ کلائنٹ سائیڈ رینڈرنگ، تھرڈ پارٹی اسکرپٹس، ایونٹ ہینڈلرز، API کالز اور ڈائنامک مواد، یہ سب پروسیسنگ کا وقت بڑھا سکتے ہیں یا میموری کا استعمال زیادہ کر سکتے ہیں۔ ریموٹ Chromium آپ کو صفحہ اسی طرح چلانے دیتا ہے جیسے اصل براؤزر چلاتا ہے، اور لوڈنگ اور انٹریکشن کے دوران ہونے والے عمل کو چیک کرنے دیتا ہے۔ پروفائلنگ کے عام کاموں میں شامل ہیں:
-
پیج لوڈ کی کارکردگی چیک کرنا
-
JavaScript کے سست اجرا کی نشاندہی کرنا
-
میموری کے استعمال کی نگرانی کرنا
-
کارکردگی کے مسائل دوبارہ پیدا کرنا
-
JavaScript سے بھرپور صفحات کی ٹیسٹنگ
-
بار بار انٹریکشنز کے بعد کارکردگی کا موازنہ کرنا
پیج لوڈ کی کارکردگی چیک کریں
HTML کا تیز رسپانس ہمیشہ تیز صفحے کی علامت نہیں ہوتا۔ JavaScript کو اب بھی ڈیٹا حاصل کرنا، ایپلیکیشن شروع کرنا، انٹرفیس کے عناصر رینڈر کرنا اور اضافی وسائل لوڈ کرنا پڑ سکتا ہے۔ صفحہ Chromium میں چلا کر لوڈنگ کا پورا عمل چیک کریں اور دیکھیں کہ JavaScript کہاں سے رفتار سست کرنا شروع کرتا ہے۔
براؤزر ورک فلوز کے دوران میموری کے استعمال کی نگرانی کریں
کچھ مسائل صفحہ کچھ دیر چلنے کے بعد ہی سامنے آتے ہیں۔ بار بار نیویگیشن، UI انٹریکشنز اور ڈائنامک مواد میموری کا استعمال بتدریج بڑھا سکتے ہیں۔ کلاؤڈ براؤزر میں وہی ورک فلو کئی بار چلائیں تاکہ دیکھ سکیں کہ مسئلہ دوبارہ ظاہر ہوتا ہے یا نہیں اور میموری کا استعمال کیسے بدلتا ہے۔
JavaScript سے بھرپور صفحات ڈیبگ کریں
سنگل پیج ایپلیکیشنز اور دیگر ڈائنامک ویب سائٹس میں اکثر ابتدائی HTML دیکھنا کافی نہیں ہوتا۔ Playwright یا Puppeteer سے وہ اقدامات دوبارہ پیدا کریں جو مسئلہ شروع کرتے ہیں، جیسے نیویگیشن، کلکس، ان پٹ یا صفحے کی اپ ڈیٹس۔ یہ اس وقت مفید ہے جب مسئلہ براؤزر انٹریکشنز کی کسی خاص ترتیب کے بعد ہی ظاہر ہو۔
Playwright یا Puppeteer کے ساتھ CDP کے ذریعے کنیکٹ کریں
Floppydata کلاؤڈ براؤزر، Chrome DevTools Protocol کے ذریعے Playwright اور Puppeteer کے ساتھ کام کرتا ہے۔ اپنے موجودہ کوڈ کو ریموٹ براؤزر سیشن سے جوڑیں اور پہلے کی طرح وہی نیویگیشن، سلیکٹرز، کلکس، ان پٹ، ویٹس اور JavaScript کا اجرا استعمال کریں۔
آپ کے ٹولز، ہمارا Chromium
آپ Python یا Node.js کے ساتھ کام کر سکتے ہیں، جبکہ Chromium Floppydata کے انفراسٹرکچر پر ریموٹ طور پر چلتا ہے۔
میٹرکس پڑھنا وہی CDP کال ہے جو لوکل طور پر ہوتی، بس سیشن کسی اور جگہ چل رہا ہوتا ہے۔
import { chromium } from 'playwright';const browser = await chromium.connectOverCDP(connectUrl);const page = browser.contexts()[0].pages()[0];const client = await page.context().newCDPSession(page);await client.send('Performance.enable');await page.goto('https://example.com');const { metrics } = await client.send('Performance.getMetrics'); import puppeteer from 'puppeteer-core';const browser = await puppeteer.connect({ browserWSEndpoint: connectUrl });const page = (await browser.pages())[0];await page.goto('https://example.com');const metrics = await page.metrics();console.log(metrics.JSHeapUsedSize, metrics.ScriptDuration); from playwright.sync_api import sync_playwrightwith sync_playwright() as p: browser = p.chromium.connect_over_cdp(connect_url) page = browser.contexts[0].pages[0] client = page.context.new_cdp_session(page) client.send('Performance.enable') page.goto('https://example.com') print(client.send('Performance.getMetrics')) صفحے کے اوپر CDP سیشن Performance ڈومین پڑھتا ہے۔
دہرائے جانے والے براؤزر سیشنز سے JavaScript کے مسائل دوبارہ پیدا کریں
جب آپ ایک ہی مسئلہ مسلسل دوبارہ پیدا کر سکیں تو ڈیبگنگ آسان ہو جاتی ہے۔ کلاؤڈ براؤزر کے ساتھ آپ کئی سیشنز میں صفحے کے وہی اقدامات دہرا کر دیکھ سکتے ہیں کہ مسئلہ دوبارہ ہوتا ہے یا نہیں۔ جب آپ کو وہی براؤزر سیٹ اپ درکار ہو تو محفوظ شدہ براؤزر سیٹنگز اور حالت دوبارہ استعمال بھی کی جا سکتی ہیں۔
بڑے ٹیسٹنگ ورک لوڈز کے لیے، Floppydata فی اکاؤنٹ بیک وقت 100 تک براؤزر سیشنز کو سپورٹ کرتا ہے۔
مختلف مقامات سے JavaScript ٹیسٹ کریں
مقام اس بات کو بدل سکتا ہے کہ ویب سائٹ کیا لوڈ کرتی ہے اور کیسے برتاؤ کرتی ہے۔ علاقائی مواد، APIs اور تھرڈ پارٹی وسائل ایک ملک یا خطے سے دوسرے میں مختلف طریقے سے کام کر سکتے ہیں۔
کلاؤڈ براؤزر سیشنز صرف Floppydata کی روٹیٹنگ پراکسی کے ذریعے چلتے ہیں، اس لیے آپ وہی ورک فلو مختلف پراکسی مقامات سے ٹیسٹ کر سکتے ہیں۔
کلاؤڈ براؤزر پر رن ٹائم یا فی سیشن کوئی فیس نہیں ہے۔ آپ صرف اپنے سیشنز میں استعمال ہونے والے Floppydata پراکسی ٹریفک کی ادائیگی کرتے ہیں۔
ایک اور Chrome ماحول سنبھالے بغیر JavaScript کی پروفائلنگ کریں
JavaScript پروفائلنگ کے لیے کلاؤڈ براؤزر Chrome انفراسٹرکچر کو آپ کے ڈیبگنگ ورک فلو سے باہر رکھتا ہے۔ اپنے ٹیسٹ ریموٹ Chromium میں چلائیں، مسئلہ دوبارہ پیدا کریں اور اس پر توجہ دیں کہ صفحے کے اندر کیا ہو رہا ہے۔