Web performance
ওয়েব পারফরম্যান্স বলতে ব্যবহারকারীর ওয়েব ব্রাউজারে ওয়েব পৃষ্ঠাগুলি ডাউনলোড এবং প্রদর্শিত হওয়ার গতিকে বোঝায়। ওয়েব পারফরম্যান্স অপ্টিমাইজেশন (ডাব্লু. পি. ও), বা ওয়েবসাইট অপ্টিমাইজেশন হল ওয়েব পারফরম্যান্স বাড়ানোর বিষয়ে জ্ঞানের ক্ষেত্র। দ্রুত ওয়েবসাইট ডাউনলোডের গতি দর্শনার্থীদের ধরে রাখা এবং আনুগত্য এবং ব্যবহারকারীর সন্তুষ্টি বৃদ্ধি করতে দেখা গেছে, বিশেষ করে ধীর গতির ইন্টারনেট সংযোগ এবং মোবাইল ডিভাইসে থাকা ব্যবহারকারীদের জন্য। ওয়েব পারফরম্যান্স ওয়েব জুড়ে কম ডেটা ভ্রমণের দিকে পরিচালিত করে, যা ফলস্বরূপ একটি ওয়েবসাইটের বিদ্যুৎ খরচ এবং পরিবেশগত প্রভাবকে হ্রাস করে। কিছু দিক যা পেজ লোডের গতিকে প্রভাবিত করতে পারে তার মধ্যে রয়েছে ব্রাউজার/সার্ভার ক্যাশে, ইমেজ অপ্টিমাইজেশন এবং এনক্রিপশন (উদাহরণস্বরূপ এসএসএল), যা পেজগুলি রেন্ডার করতে যে সময় লাগে তা প্রভাবিত করতে পারে। বহু-স্তরযুক্ত ক্যাশে, উপস্থাপনা স্তরের উপাদানগুলির হালকা ওজনের নকশা এবং সার্ভার পার্শ্ব উপাদানগুলির সাথে অ্যাসিঙ্ক্রোনাস যোগাযোগের মতো কৌশলগুলির মাধ্যমে ওয়েব পৃষ্ঠার কার্যকারিতা উন্নত করা যেতে পারে। ওয়েবের অস্তিত্বের প্রথম দশকে, ওয়েব পারফরম্যান্সের উন্নতি মূলত ওয়েবসাইট কোড অপ্টিমাইজ করা এবং হার্ডওয়্যার সীমাবদ্ধতার উপর দৃষ্টি নিবদ্ধ করা হয়েছিল। প্যাট্রিক কিলিলিয়ার 2002 সালের বই ওয়েব পারফরম্যান্স টিউনিং অনুসারে, কিছু প্রাথমিক কৌশল ব্যবহার করা হয়েছিল সাধারণ সার্ভলেট বা সিজিআই ব্যবহার করা, সার্ভারের মেমরি বৃদ্ধি করা এবং প্যাকেটের ক্ষতি এবং পুনঃপ্রসারণের সন্ধান করা। যদিও এই নীতিগুলি এখন ইন্টারনেট অ্যাপ্লিকেশনগুলির অপ্টিমাইজড ভিত্তির বেশিরভাগ অংশ নিয়ে গঠিত, তবে এগুলি বর্তমান অপ্টিমাইজেশন তত্ত্বের থেকে পৃথক যে ব্রাউজার প্রদর্শনের গতি উন্নত করার প্রচেষ্টা অনেক কম ছিল। স্টিভ সাউডার্স 2004 সালে "ওয়েব পারফরম্যান্স অপ্টিমাইজেশন" শব্দটি তৈরি করেছিলেন। সেই সময়ে ডাব্লু. পি. ও একটি "উদীয়মান শিল্প" হিসাবে ওয়েবে যে প্রভাব ফেলবে সে সম্পর্কে সাউডারস বেশ কয়েকটি ভবিষ্যদ্বাণী করেছিলেন, যেমন ওয়েবসাইটগুলি ডিফল্টরূপে দ্রুত হওয়া, একীকরণ, পারফরম্যান্সের জন্য ওয়েব মান, অপ্টিমাইজেশনের পরিবেশগত প্রভাব এবং পার্থক্যকারী হিসাবে গতি। 2007 সালে সাউডারস একটি প্রধান বিষয় তুলে ধরেছিল যে কোনও ওয়েবসাইট ডাউনলোড করতে এবং দেখতে যে কমপক্ষে 80 শতাংশ সময় লাগে তা ফ্রন্ট-এন্ড স্ট্রাকচার দ্বারা নিয়ন্ত্রিত হয়। সাধারণ ব্রাউজারের আচরণ সম্পর্কে সচেতনতার পাশাপাশি এইচটিটিপি কীভাবে কাজ করে তার মাধ্যমে এই বিলম্বের সময় হ্রাস করা যেতে পারে। অপ্টিমাইজেশান কৌশল ওয়েব পারফরম্যান্স অপ্টিমাইজেশান কোনও ওয়েবসাইট দেখার সময় ব্যবহারকারীর অভিজ্ঞতা (ইউএক্স) উন্নত করে এবং তাই ওয়েব ডিজাইনার এবং ওয়েব ডেভেলপারদের দ্বারা অত্যন্ত কাঙ্ক্ষিত। তারা বেশ কয়েকটি কৌশল ব্যবহার করে যা ওয়েব পেজ লোডের সময় কমাতে ওয়েব অপ্টিমাইজেশনের কাজগুলিকে সহজতর করে। এই প্রক্রিয়াটি ফ্রন্ট এন্ড অপ্টিমাইজেশন (এফ. ই. ও) বা কন্টেন্ট অপ্টিমাইজেশন নামে পরিচিত। এফ. ই. ও ফাইলের আকার হ্রাস করতে এবং "একটি প্রদত্ত পৃষ্ঠা লোড করার জন্য প্রয়োজনীয় অনুরোধের সংখ্যা হ্রাস করতে" মনোনিবেশ করে। নীচে তালিকাভুক্ত কৌশলগুলি ছাড়াও, একটি কন্টেন্ট ডেলিভারি নেটওয়ার্কের ব্যবহার-বিশ্বজুড়ে বিভিন্ন স্থানে ছড়িয়ে থাকা প্রক্সি সার্ভারের একটি গ্রুপ-একটি দক্ষ ডেলিভারি সিস্টেম যা নেটওয়ার্কের সান্নিধ্যের উপর ভিত্তি করে একটি নির্দিষ্ট ব্যবহারকারীর জন্য একটি সার্ভার বেছে নেয়। সাধারণত দ্রুততম প্রতিক্রিয়া সময় সহ সার্ভার নির্বাচন করা হয়। নিম্নলিখিত কৌশলগুলি সাধারণত ওয়েব অপ্টিমাইজেশনের কাজ হিসাবে ব্যবহৃত হয় এবং ওয়েব ডেভেলপারদের দ্বারা ব্যাপকভাবে ব্যবহৃত হয়ঃ ওয়েব ব্রাউজারগুলি একটি ওয়েব পৃষ্ঠা ডাউনলোড করার সময় জমা দেওয়া প্রতিটি হাইপারটেক্সট ট্রান্সফার প্রোটোকল (এইচটিটিপি) অনুরোধের জন্য পৃথক ট্রান্সমিশন কন্ট্রোল প্রোটোকল (টিসিপি) সংযোগ খোলে। এই অনুরোধগুলি ডাউনলোডের জন্য প্রয়োজনীয় পৃষ্ঠা উপাদানগুলির মোট সংখ্যা। যাইহোক, একটি ব্রাউজার শুধুমাত্র একটি একক হোস্টের সাথে একযোগে সংযোগগুলির একটি নির্দিষ্ট সংখ্যা খোলার মধ্যে সীমাবদ্ধ। বাধাগুলি প্রতিরোধ করার জন্য, সম্পদ একীকরণ ব্যবহার করে পৃথক পৃথক পৃষ্ঠা উপাদানগুলির সংখ্যা হ্রাস করা হয় যার মাধ্যমে ছোট ফাইলগুলি (যেমন চিত্রগুলি) একটি ফাইলে একত্রিত করা হয়। এটি এইচটিটিপি অনুরোধ এবং একটি ওয়েব পেজ লোড করার জন্য প্রয়োজনীয় "রাউন্ড ট্রিপ"-এর সংখ্যা হ্রাস করে। ওয়েব পৃষ্ঠাগুলি জাভাস্ক্রিপ্ট এবং হাইপারটেক্সট মার্কআপ ল্যাঙ্গুয়েজ (এইচটিএমএল)-এর মতো কোড ফাইল থেকে তৈরি করা হয়। ওয়েব পৃষ্ঠাগুলির জটিলতা বাড়ার সাথে সাথে তাদের কোড ফাইলগুলি এবং পরবর্তীকালে তাদের লোড সময়গুলিও বৃদ্ধি পায়। ফাইল সংকোচন কোড ফাইলগুলিকে 80 শতাংশ পর্যন্ত হ্রাস করতে পারে, যার ফলে সাইটের প্রতিক্রিয়াশীলতা উন্নত হয়। ওয়েব ক্যাশিং অপ্টিমাইজেশন সার্ভার লোড, ব্যান্ডউইথ ব্যবহার এবং বিলম্বতা হ্রাস করে। সিডিএনগুলি তাদের সিস্টেমের মধ্য দিয়ে যাওয়া নথির অনুলিপি সংরক্ষণ করতে ডেডিকেটেড ওয়েব ক্যাশিং সফ্টওয়্যার ব্যবহার করে। কিছু শর্ত প্রযোজ্য হলে ক্যাশে থেকে পরবর্তী অনুরোধগুলি পূরণ করা যেতে পারে। ওয়েব ক্যাশগুলি সিডিএন-এর ক্লায়েন্ট সাইডে (সামনের দিকে) বা ওয়েব-সার্ভার সাইডে (বিপরীত দিকে) অবস্থিত। ওয়েব ব্রাউজারগুলি এইচটিটিপি ক্যাশে বা ওয়েব ক্যাশের মাধ্যমে পুনরায় ব্যবহারের জন্য সামগ্রী সংরক্ষণ করতে সক্ষম। ওয়েব ব্রাউজারগুলি যে অনুরোধগুলি করে তা সাধারণত এইচটিটিপি ক্যাশে পাঠানো হয় কোনও অনুরোধ পূরণ করতে ক্যাশে করা প্রতিক্রিয়া ব্যবহার করা যেতে পারে কিনা তা যাচাই করার জন্য। যদি এই ধরনের একটি মিল তৈরি করা হয়, তাহলে ক্যাশে থেকে প্রতিক্রিয়া পূরণ করা হয়। এটি নেটওয়ার্ক বিলম্বতা এবং ডেটা-স্থানান্তরের সাথে সম্পর্কিত ব্যয় হ্রাস করতে সহায়ক হতে পারে। এইচটিটিপি ক্যাশে অনুরোধ এবং প্রতিক্রিয়া শিরোনাম ব্যবহার করে কনফিগার করা হয়। কোড মিনিফিকেশন ওয়েব ডেভেলপারদের লেখা কোড এবং নেটওয়ার্ক উপাদানগুলি কীভাবে কোডকে ব্যাখ্যা করে তার মধ্যে পার্থক্য করে। মিনিফিকেশন কোড হ্রাস করার জন্য মন্তব্য এবং অতিরিক্ত স্থানের পাশাপাশি পরিবর্তনশীল নামগুলি সরিয়ে দেয়, ফাইলের আকার 60 শতাংশ পর্যন্ত হ্রাস করে। ক্যাশিং এবং কম্প্রেশন ছাড়াও, লসি কম্প্রেশন কৌশলগুলি (অডিও ফাইলগুলির সাথে ব্যবহৃত কৌশলগুলির মতো) অপ্রয়োজনীয় হেডার তথ্য সরিয়ে দেয় এবং অনেক উচ্চ রেজোলিউশনের ছবিতে মূল চিত্রের গুণমানকে কমিয়ে দেয়। এই পরিবর্তনগুলি, যেমন পিক্সেল জটিলতা বা রঙের ক্রমবিন্যাস, শেষ ব্যবহারকারীর কাছে স্বচ্ছ এবং চিত্রের উপলব্ধিকে লক্ষণীয়ভাবে প্রভাবিত করে না। আরেকটি কৌশল হল রেজোলিউশন-স্বাধীন ভেক্টর গ্রাফিক্সের সাথে রাস্টার গ্রাফিক্সের প্রতিস্থাপন। সরল জ্যামিতিক চিত্রের জন্য ভেক্টর প্রতিস্থাপন সবচেয়ে উপযুক্ত। ছবি এবং ভিডিওর অলস লোডিং প্রাথমিক পৃষ্ঠা লোডের সময়, প্রাথমিক পৃষ্ঠার ওজন এবং সিস্টেম রিসোর্সের ব্যবহার হ্রাস করে, যার সবগুলিই ওয়েবসাইটের কার্যকারিতার উপর ইতিবাচক প্রভাব ফেলে। এটি কোনও বস্তুর সূচনা যতক্ষণ না প্রয়োজন ততক্ষণ পর্যন্ত পিছিয়ে দেওয়ার জন্য ব্যবহৃত হয়। ব্রাউজার কোনও পৃষ্ঠা বা পোস্টে যখন প্রয়োজন হয় তখন ছবিগুলি লোড করে যেমন ব্যবহারকারী যখন পৃষ্ঠাটি স্ক্রোল করে এবং সমস্ত ছবি একবারে নয়, যা ডিফল্ট আচরণ, এবং স্বাভাবিকভাবেই, আরও বেশি সময় নেয়। এইচটিটিপি/1. এক্স এবং এইচটিটিপি/2 যেহেতু ওয়েব ব্রাউজারগুলি সমান্তরাল ব্যবহারকারীর অনুরোধের জন্য একাধিক টিসিপি সংযোগ ব্যবহার করে, তাই নেটওয়ার্ক সংস্থানগুলির যানজট এবং ব্রাউজার একচেটিয়া হতে পারে। যেহেতু এইচটিটিপি/1 অনুরোধগুলি সম্পর্কিত ওভারহেডের সাথে আসে, ওয়েব পারফরম্যান্স সীমিত ব্যান্ডউইথ এবং বর্ধিত ব্যবহারের দ্বারা প্রভাবিত হয়। এইচ. টি. টি. পি/1-এর তুলনায়, এইচ. টি. টি. পি/2 বাইনারি, পাঠ্যের পরিবর্তে অর্ডার করা এবং ব্লক করার পরিবর্তে সম্পূর্ণ মাল্টিপ্লেক্স করা হয়, তাই সমান্তরালতার জন্য একটি সংযোগ ব্যবহার করা যেতে পারে, হেডার কম্প্রেশন ব্যবহার করে ওভারহেড কমাতে সার্ভারগুলিকে ক্লায়েন্ট ক্যাশে সক্রিয়ভাবে প্রতিক্রিয়াগুলি "ধাক্কা" দেওয়ার অনুমতি দেয় কোনও ওয়েবসাইটের হোস্টিং সার্ভারের পরিবর্তে, সি. ডি. এনগুলি এইচ. টি. টি. পি/2-এর সাথে সামঞ্জস্য রেখে ব্যবহার করা হয় যাতে শেষ ব্যবহারকারীকে ছবি, জাভাস্ক্রিপ্ট ফাইল এবং ক্যাসকেডিং স্টাইল শীট (সি. এস. এস) ফাইলগুলির মতো ওয়েব সংস্থানগুলির সাথে আরও ভালভাবে পরিবেশন করা যায় কারণ একটি সি. ডি. এন-এর অবস্থান সাধারণত শেষ ব্যবহারকারীর কাছাকাছি থাকে। সাম্প্রতিক বছরগুলিতে, বেশ কয়েকটি মেট্রিক চালু করা হয়েছে যা ডেভেলপারদের তাদের ওয়েবসাইটের কর্মক্ষমতার বিভিন্ন দিক পরিমাপ করতে সহায়তা করে। 2019 সালে, গুগল টাইম টু ফার্স্ট বাইট (টি. টি. এফ. বি), ফার্স্ট কন্টেন্টফুল পেইন্ট (এফ. সি. পি), ফার্স্ট পেইন্ট (এফ. পি), ফার্স্ট ইনপুট ডিলে (এফ. আই. ডি), কিউমুলেটিভ লেআউট শিফট (সি. এল. এস) এবং লার্জেস্ট কন্টেন্টফুল পেইন্ট (এল. সি. পি)-এর মতো মেট্রিক্স চালু করেছে যা ওয়েবসাইটের মালিকদের এমন সমস্যাগুলির অন্তর্দৃষ্টি অর্জনের অনুমতি দেয় যা তাদের ওয়েবসাইটের কর্মক্ষমতাকে ক্ষতিগ্রস্থ করতে পারে যা ব্যবহারকারীকে ধীর বা ধীর বলে মনে করে। অনলোড সময়, সংযোগের সময়, মোট পৃষ্ঠার আকার সহ অন্যান্য মেট্রিকগুলি নেটওয়ার্কিং স্তরে ঘটে যাওয়া বিলম্ব এবং মন্দার একটি সঠিক চিত্র সরবরাহ করতে সহায়তা করে যা কোনও সাইটকে ধীর করে দিতে পারে। টি. টি. এফ. বি, এফ. সি. পি, এল. সি. পি, এফ. পি ইত্যাদির মতো পরিমাপ পরিমাপের মডিউলগুলিতে প্রধান ফ্রন্টএন্ড জাভাস্ক্রিপ্ট লাইব্রেরি যেমন রিঅ্যাক্ট, নুক্সটজেএস এবং ভু প্রদান করা হয়। গুগল একটি গ্রন্থাগার প্রকাশ করে, মূল-ওয়েব-গুরুত্বপূর্ণ গ্রন্থাগার যা ফ্রন্টএন্ড অ্যাপ্লিকেশনগুলিতে এই মেট্রিকগুলির সহজ পরিমাপের অনুমতি দেয়। এছাড়াও, গুগল লাইটহাউস, একটি ক্রোম ডেভ-টুলস উপাদান এবং পেজস্পিড ইনসাইট এমন একটি সাইট প্রদান করে যা ডেভেলপারদের গুগলের প্রস্তাবিত ন্যূনতম এবং সর্বাধিকের সাথে তাদের ওয়েবসাইটের কর্মক্ষমতা পরিমাপ এবং তুলনা করার অনুমতি দেয়। এছাড়াও, মোজিলা ফায়ারফক্সের নেটওয়ার্ক মনিটরের মতো সরঞ্জামগুলি নেটওয়ার্ক-স্তরের মন্দা সম্পর্কে অন্তর্দৃষ্টি প্রদান করতে সহায়তা করে যা তথ্য প্রেরণের সময় ঘটতে পারে। রেফারেন্স ওয়েব ডেভেলপমেন্ট