কোডটি অংগুলিতে বিভক্ত করা বা অলস মডিউলগুলির মধ্যে কীভাবে উপাদানগুলি ভাগ করা যায়

এই নিবন্ধটি আপনাকে কীভাবে কৌনিক আপনার কোডকে অংশগুলিতে বিভক্ত করেছে সে সম্পর্কে আরও ভাল ধারণা দেবে।

যদি আপনি উপরে কৌনিক সিএলআই আউটপুট দেখিয়ে ভয় পেয়ে থাকেন বা আপনি যদি উত্সাহী হন যে কোড-বিভাজনটি আসলে কীভাবে ঘটে তবে এই পোস্টটি আপনার জন্য।

কোড বিভাজন আপনাকে আপনার কোডটি বিভিন্ন বান্ডিলগুলিতে বিভক্ত করতে দেয় যা এর পরে চাহিদা অনুযায়ী লোড করা যায়। যদি সঠিকভাবে ব্যবহার করা হয় তবে লোড টাইমে বড় প্রভাব ফেলতে পারে।

সামগ্রী

  1. আমার যত্ন কেন করা উচিত?
  2. ফণার অধীনে কৌণিক সিএলআই কোড বিভাজন
  3. অলস মডিউলগুলির সাথে সরল কৌণিক অ্যাপ্লিকেশন
  4. অলস মডিউলগুলির মধ্যে কীভাবে উপাদানগুলি ভাগ করা যায়
  5. উপসংহার

আমার যত্ন কেন করা উচিত?

আসুন কল্পনা করুন আপনি একটি একেবারে নতুন কৌণিক প্রকল্প শুরু করেছেন। আপনি কীভাবে একটি কৌণিক অ্যাপ্লিকেশন স্থপতি করতে পারেন, যথাযথ ফোল্ডার কাঠামো কী এবং সবচেয়ে গুরুত্বপূর্ণ কী, দুর্দান্ত স্টার্টআপ পারফরম্যান্স কীভাবে রাখতে হয় সে সম্পর্কে আপনি প্রচুর সংস্থান পড়েন।

আপনি কৌণিক সিএলআই চয়ন করেছেন এবং প্রচুর অলস-বোঝা বৈশিষ্ট্য মডিউল সহ একটি মডুলার অ্যাপ্লিকেশন তৈরি করেছেন। এবং অবশ্যই, আপনি একটি ভাগ করা মডিউল তৈরি করেছেন যেখানে আপনি সাধারণত ব্যবহৃত নির্দেশাবলী, পাইপ এবং উপাদানগুলি রেখেছিলেন।

কিছুক্ষণ পরে, আপনি নিজেকে ভাবতে পেরেছিলেন যে একবার আপনার নতুন বৈশিষ্ট্য মডিউলের জন্য অন্য বৈশিষ্ট্য মডিউলগুলির থেকে কিছু কার্যকারিতা দরকার হয় আপনি এই কার্যকারিতাটিকে সেই একক ভাগ করা মডিউলে স্থানান্তরিত করতে চান।

অ্যাপ্লিকেশনটি বিকশিত হয় এবং শীঘ্রই আপনি লক্ষ্য করেছেন যে এটির প্রারম্ভকালীন সময়টি আপনার (এবং সবচেয়ে গুরুত্বপূর্ণভাবে আপনার ক্লায়েন্ট) প্রত্যাশা পূরণ করে না।

এখন, আপনি সন্দেহ করছেন ...

  • যদি আমি আমার সমস্ত পাইপ, নির্দেশনা এবং সাধারণ উপাদানগুলি একটি বড় ভাগ করা মডিউলে রাখি এবং তারপরে এটি অলস-লোডযুক্ত মডিউলগুলিতে আমদানি করি (যেখানে আমি আমদানি করা বৈশিষ্ট্যগুলির মধ্যে কেবল এক বা দুটি ব্যবহার করি) এটি আউটপুট ফাইলগুলিতে অব্যবহৃত-কোড নকলের কারণ হতে পারে ।
  • অন্যদিকে, যদি আমি বেশ কয়েকটি ভাগ করা মডিউলগুলির মধ্যে ভাগ করা বৈশিষ্ট্যগুলি বিভক্ত করি এবং প্রতিটি নির্দিষ্ট মডিউলে কেবল সেগুলির প্রয়োজনীয়গুলি আমদানি করি তবে এটি কি আমার অ্যাপ্লিকেশনের আকার হ্রাস পাবে? বা কৌনিকটি কি ডিফল্টরূপে এই জাতীয় সমস্ত অপ্টিমাইজেশন করে?

চলুন ডিমেস্টাইফাই করা যাক!

ফণার অধীনে কৌণিক সিএলআই কোড বিভাজন

যেমনটি আমরা সবাই জানি, বর্তমান কৌণিক সিএলআই সংস্করণ বান্ডিলিং করতে ওয়েবপ্যাক ব্যবহার করে। তবে তা সত্ত্বেও, ওয়েবপ্যাক কোড বিভাজনের জন্যও দায়ী।

সুতরাং, ওয়েবপ্যাকটি এটি কী করে তা একবার দেখে নেওয়া যাক।

ওয়েবপ্যাক 4 স্প্লিটচুনসপ্লাগিন প্রবর্তন করেছে যা মডিউলগুলিকে খণ্ডে বিভক্ত করার জন্য কিছু হিউরিস্টিক সংজ্ঞায়িত করতে দেয়। অনেক লোক অভিযোগ করেন যে এই কনফিগারেশনটি রহস্যজনক বলে মনে হচ্ছে। এবং একই সময়ে, এটি কোড বিভাজনের সবচেয়ে আকর্ষণীয় অংশ।

তবে স্প্লিটচঙ্কস প্লাগিন অপ্টিমাইজেশান প্রয়োগ করার আগে ওয়েবপ্যাক একটি নতুন খণ্ড তৈরি করে:

  • প্রতিটি প্রবেশের জন্য

কৌণিক সিএলআই নিম্নলিখিত এন্ট্রি পয়েন্টগুলি কনফিগার করে

প্রধান পলিফিল শৈলী

যার ফলস্বরূপ একই নামগুলি হবে।

  • প্রতিটি গতিশীল লোড মডিউলের জন্য (আমদানি () সিনট্যাক্স ব্যবহার করে যা গতিশীল আমদানির জন্য ECMAScript প্রস্তাবের সাথে সম্মতি দেয়)

আপনি কি লোড চিলড্রেন সিনট্যাক্সের কথা মনে করেন? এটি একটি অংশ তৈরির জন্য ওয়েবপ্যাকের সংকেত।

এখন চলুন স্প্লিটচুনসপ্লাগিনে এগিয়ে চলুন। এটি ওয়েবপ্যাক.config.js এর অপ্টিমাইজেশন ব্লকের ভিতরে সক্ষম করা যেতে পারে

আসুন কৌণিক সিএলআই উত্স কোডটি দেখুন এবং সেই কনফিগারেশন বিভাগটি সন্ধান করুন:

কৌণিক সিএলআই 8 এ স্প্লিটচঙ্কস প্লাগিন কনফিগারেশন

আমরা এখানে ক্যাশে গ্রুপ বিকল্পগুলিতে ফোকাস করব কারণ যেহেতু কিছু শর্তের উপর ভিত্তি করে পৃথক অংশগুলি কীভাবে তৈরি করা যায় তা ওয়েবপ্যাকের জন্য এটি "রেসিপি"।

ক্যাশেগ্রুপগুলি একটি সরল অবজেক্ট যেখানে কীটি একটি গ্রুপের নাম। মূলত, আমরা একটি ক্যাশে গোষ্ঠীটিকে একটি নতুন অংশ তৈরির সম্ভাব্য সুযোগ হিসাবে ভাবতে পারি।

প্রতিটি গ্রুপের অনেকগুলি কনফিগারেশন রয়েছে এবং এটি স্প্লিটচঙ্কস স্তর থেকে কনফিগারেশন উত্তরাধিকারী হতে পারে।

উপরের কৌনিক সিএলআই কনফিগারেশনে আমরা যে বিকল্পগুলি দেখেছি সেগুলির উপরে আসল দ্রুত চলুন:

  • অংশগুলি মান সিঙ্ক এবং অ্যাসিঙ্ক অংশগুলির মধ্যে মডিউলগুলি ফিল্টার করতে ব্যবহৃত হতে পারে। এর মান প্রাথমিক, অ্যাসিঙ্ক বা সমস্ত হতে পারে। প্রাথমিক অর্থ কেবল ফাইলগুলিকে অংশে যুক্ত করুন যদি সেগুলি সিঙ্ক খণ্ডের মধ্যে আমদানি করা হয়। অ্যাসিঙ্কের অর্থ কেবলমাত্র ফাইলগুলিকে অংশে যুক্ত করুন যদি সেগুলি এসিঙ্ক খণ্ডের মধ্যে আমদানি করা হয় (ডিফল্টরূপে অ্যাসিঙ্ক)
  • মিনিচঙ্কস ওয়েবপ্যাকটিকে কেবলমাত্র মঞ্চগুলিতে ইনজেক্ট করতে বলে যদি সেগুলি কমপক্ষে 2 টি অংশের মধ্যে ভাগ করা হয় (ডিফল্টরূপে 1)
  • নাম ওয়েবপ্যাকটিকে নতুন তৈরি হওয়া অংশের জন্য সেই নামটি ব্যবহার করতে বলে। স্ট্রিং বা একটি ফাংশন নির্দিষ্ট করে যা সর্বদা একই স্ট্রিং দেয় যা সমস্ত সাধারণ মডিউলকে একক অংশে মার্জ করে।
  • অগ্রাধিকার মানটি যখন কোনও মডিউল অনেকগুলি গোষ্ঠীর অধীনে আসে তখন সর্বাধিক মিলিত অংশগুলি সনাক্ত করতে ব্যবহৃত হয়।
  • প্রয়োগটি ওয়েবপ্যাককে minSize, minChunks, maxAsyncRequests এবং maxInitialRequosts বিকল্পগুলি উপেক্ষা করতে এবং সর্বদা এই ক্যাশে গোষ্ঠীর জন্য খণ্ডগুলি তৈরি করতে বলে। এখানে একটি ছোট্ট গোচা রয়েছে: যদি এই উপেক্ষা করা বিকল্পগুলির মধ্যে কোনওটি ক্যাশে গ্রুপ স্তরে সরবরাহ করা হয় তবে সেই বিকল্পটি এখনও ব্যবহার করা হবে।
  • কোন মডিউলগুলি এই ক্যাশে গোষ্ঠী দ্বারা নির্বাচিত হয় তা পরীক্ষা করে। যেমন আমরা লক্ষ্য করতে পারি, কৌনিক সিএলআই সমস্ত নোড_মডিউলগুলির নির্ভরতা বিক্রেতার অংশে স্থানান্তর করতে এই বিকল্পটি ব্যবহার করে।
  • মিনিজ সাইজটি ন্যূনতম আকার সনাক্ত করতে ব্যবহৃত হয়, বাইটগুলিতে, একটি অংশ তৈরি করার জন্য। এটি কৌণিক সিএলআই কনফিগারেশনে উপস্থিত হয়নি তবে এটি একটি অত্যন্ত গুরুত্বপূর্ণ বিকল্প যা আমাদের সচেতন হওয়া উচিত। (উত্স কোড হিসাবে বলা হয়েছে, এটি উত্পাদনে ডিফল্ট হিসাবে 30 কেবি এবং দেব পরিবেশে 10 কেবি)
টিপ: ওয়েবপ্যাক ডকুমেন্টেশন সুনির্দিষ্টভাবে ডিফল্ট সংজ্ঞায়িত করেও আমি সঠিক মানগুলি খুঁজে পেতে ওয়েবপ্যাক উত্স কোডটি উল্লেখ করব

আসুন এখানে পুনরায় সংশোধন করুন: কৌণিক সিএলআই একটি মডিউলটিকে এখানে স্থানান্তরিত করবে:

  • যদি সেই মডিউলটি নোড_মডিউলগুলি ডিরেক্টরি থেকে আসে তবে বিক্রেতার অংশ।
  • ডিফল্ট খণ্ড যদি সেই মডিউলটি একটি অ্যাসিঙ্ক মডিউলের অভ্যন্তরে আমদানি করা হয় এবং কমপক্ষে দুটি মডিউলের মধ্যে ভাগ করা হয়। নোট করুন যে এখানে অনেকগুলি ডিফল্ট অংশ সম্ভব। আমি ব্যাখ্যা করব যে কীভাবে ওয়েবপ্যাক সেই খণ্ডগুলির জন্য নাম তৈরি করে।
  • সাধারণ মাপ যদি সেই মডিউলটি একটি অ্যাসিঙ্ক মডিউলের অভ্যন্তরে আমদানি করা হয় এবং কমপক্ষে দুটি মডিউলের মধ্যে ভাগ করা হয় এবং এটি ডিফল্ট খণ্ড (হ্যালো অগ্রাধিকার) এর অধীনে না আসে এবং এটি আকারের কোনও বিষয় নয় (থেইনফোর্স বিকল্পের জন্য ধন্যবাদ)

যথেষ্ট তত্ত্ব, অনুশীলন করা যাক।

অলস মডিউলগুলির সাথে সরল কৌণিক অ্যাপ্লিকেশন

স্প্লিটচঙ্কসপ্লাগিন প্রক্রিয়াটি ব্যাখ্যা করার জন্য, আমরা কৌণিক অ্যাপ্লিকেশনটির একটি সহজ সংস্করণ দিয়ে শুরু করতে যাচ্ছি:

অ্যাপ্লিকেশন ├── একটি (অলস) .com .com a.componal.ts │ └── a.module.ts ├── ├── ab │ └── ab.componal.ts └──। ab.module.ts ├── বি (অলস) └── .com b.componal.ts │ └── b.module.ts │ └── সি (অলস) └── └── c.componal.ts │। সি.মডিউল। ts └── └── cd │ └── cd.component.ts └── d cd.module.ts │ └── d (অলস) └── .com d.componal.ts │ └── d.module.ts । └── share │ └── shared.module.ts │ └── app.componal.ts └── app.module.ts

এখানে ক, খ, সি এবং ডি অলস মডিউল রয়েছে যার অর্থ তারা আমদানি () সিনট্যাক্স ব্যবহার করে আমদানি করা হয়।

a এবং b উপাদানগুলি তাদের টেম্পলেটগুলিতে ab উপাদান ব্যবহার করে। সি এবং ডি উপাদান সিডি উপাদান ব্যবহার করে।

কৌণিক মডিউলগুলির মধ্যে নির্ভরতা

Ab.module এবং cd.module এর পার্থক্য হ'ল ab.module a.module এবং b.module এ আমদানি করা হয় যখন cd.module শেয়ারড.মডিউল আমদানি করা হয়।

এই কাঠামোটি হ'ল সন্দেহগুলি বর্ণনা করে যা আমরা ক্ষয় করতে চেয়েছিলাম। চূড়ান্ত আউট করা যাক ab এবং সিডি মডিউলগুলি চূড়ান্ত আউটপুটে থাকবে।

অ্যালগরিদম

1) স্প্লিটচঙ্কস প্লাগিনের অ্যালগরিদম প্রতিটি তৈরি করা খণ্ডকে একটি সূচক দেওয়ার মাধ্যমে শুরু হয়।

সূচক অনুসারে অংশগুলি

2) তারপরে এটি চাঁদসেটসইনগ্রাফ মানচিত্র পূরণ করার জন্য সমস্ত মডিউলগুলিকে সংকলনে লুপ করে। এই অভিধানে দেখায় কোন অংশগুলি একই কোড ভাগ করে।

chunkSetsInGraph

উদাহরণস্বরূপ, 1,2 প্রধান, পলিফিল সারিটির অর্থ কমপক্ষে একটি মডিউল রয়েছে যা দুটি অংশে প্রদর্শিত হয়: প্রধান এবং পলফিল।

a এবং b মডিউলগুলি একই কোড ফ্রোম্যাব-মডিউল ভাগ করে নেয় যাতে আমরা উপরের সংমিশ্রণটিও দেখতে পারি (4,5)।

3) সমস্ত মডিউল ধরে চলুন এবং সুনির্দিষ্ট ক্যাশেগ্রুপের জন্য কোনও নতুন অংশ তৈরি করা সম্ভব কিনা তা নির্ধারণ করুন।

3 এ) সবার আগে, ওয়েবপ্যাকটি নির্ধারণ করে যে মডিউলটিকে নির্দিষ্ট ক্যাশেগ্রুপে যোগ করা যাবে কিনা চেকগ্রুপ.স্টেস্ট সম্পত্তিটি পরীক্ষা করে।

ab.module টেস্ট

ডিফল্ট পরীক্ষা অনির্ধারিত => ঠিক আছে
সাধারণ পরীক্ষা অনির্ধারিত => ঠিক আছে
বিক্রেতার পরীক্ষার ফাংশন => মিথ্যা

ডিফল্ট এবং সাধারণ ক্যাশে গোষ্ঠী সেরাতম বৈশিষ্ট্যটিকে সংজ্ঞায়িত করে না তাই এটি এটি পাস করা উচিত। বিক্রেত্রে ক্যাশে গোষ্ঠী একটি ফাংশন সংজ্ঞায়িত করে যেখানে কেবল তখনইોડো_মডিউলগুলি থেকে মডিউলগুলি অন্তর্ভুক্ত করার জন্য একটি ফিল্টার রয়েছে।

সিডি.মডিউল পরীক্ষা একই রকম।

3 খ) এখন সমস্ত খণ্ড সংমিশ্রনের মধ্য দিয়ে চলার সময়।

প্রতিটি মডিউল বুঝতে পারে কোন অংশে এটি প্রদর্শিত হবে (মডিউল.চঙ্কসআইটেবল সম্পত্তিকে ধন্যবাদ)।

ab.module দুটি অলস খণ্ডে আমদানি করা হয় সুতরাং এর সংমিশ্রণগুলি (4), (5) এবং (4,5)।

অন্যদিকে, সিডি.মডিউলটি কেবলমাত্র ভাগ করা মডিউলে আমদানি করা হয়, যার অর্থ এটি কেবলমাত্র ডোমেইন খণ্ডে আমদানি করা হয়। এর সংমিশ্রণগুলি কেবল (1)।

তারপরে প্লাগইনগুলি মিনিচঙ্ক আকারের মাধ্যমে সংমিশ্রণগুলি ফিল্টার করে:

যদি (chunkCombination.size 

যেহেতু ab.module এর সংমিশ্রণ রয়েছে (4,5) এটি এই চেকটি পাস করতে হবে। এটি আমরা সিডি.মডিউল সম্পর্কে বলতে পারি না। এই মুহুর্তে, এই মডিউলটি প্রধান খণ্ডের ভিতরেই থেকে যায়।

3 সি) ক্যাশেগ্রুপ.চানকডস দ্বারা আরও একটি চেক রয়েছে (প্রাথমিক, অ্যাসিঙ্ক বা সমস্ত)

ab.module async (অলস বোঝা) খণ্ডগুলির মধ্যে আমদানি করা হয়। এটি ঠিক ডিফল্ট এবং সাধারণ ক্যাশে গ্রুপগুলির প্রয়োজন what এইভাবে ab.module দুটি নতুন সম্ভাব্য খণ্ডে যুক্ত করা হয়েছে (ডিফল্ট এবং সাধারণ)।

আমি প্রতিশ্রুতি দিয়েছিলাম তাই আমরা এখানে যাই।

ওয়েবপ্যাকটি কীভাবে স্প্লিটচঙ্কসপ্লাগিন দ্বারা নির্মিত অংশের নাম তৈরি করে?

এর সরলিকৃত সংস্করণ হিসাবে উপস্থাপন করা যেতে পারে

কোথায়:

  • গ্রুপনেম গ্রুপটির নাম (আমাদের ক্ষেত্রে ডিফল্ট)
  • ~ একটি ডিফল্টআউটমেটিক নামডেলিমিটার el
  • chunkNames সমস্ত গোষ্ঠীর নামগুলির তালিকা উল্লেখ করে যা এই গ্রুপে অন্তর্ভুক্ত রয়েছে। এই নামটি পুরোপথের মতো তবে এটি স্ল্যাশের পরিবর্তে এটি ব্যবহার করে -।

উদাহরণস্বরূপ dd- মডিউলটির অর্থ আমাদের ডি ফোল্ডারে d.module ফাইল রয়েছে।

সুতরাং যেটি আমরা ব্যবহার করেছি ('./ a / a.module') এবং আমদানি ('./ b / b.module') পেয়েছি

ডিফল্ট খণ্ড নামের কাঠামো

আরও একটি বিষয় উল্লেখযোগ্য যে হ'ল একটি খণ্ড নামের দৈর্ঘ্য যখন 109 টি অক্ষরে পৌঁছায়, ওয়েবপ্যাক এটিকে কেটে দেয় এবং শেষে কিছুটা হ্যাশ যুক্ত করে।

বড় অংশের কাঠামো যা একাধিক অলস মডিউল জুড়ে কোড ভাগ করে দেয়

আমরা খণ্ডসইনফোম্যাপ পূরণ করতে প্রস্তুত যা সমস্ত সম্ভাব্য নতুন খণ্ডগুলি সম্পর্কে সমস্ত কিছু জানে এবং এটিও জানতে পারে যে এটিগুলির মধ্যে মডিউলগুলি কীভাবে গঠিত এবং সম্পর্কিত খণ্ডগুলি থাকতে পারে যেখানে এই মডিউলগুলি বর্তমানে রয়েছে।

chunksInfoMap

এটি সম্ভাব্য খণ্ডগুলি ফিল্টার করার সময়

সেরা মিলের এন্ট্রি সন্ধানের জন্য স্প্লিটচঙ্কস প্লাগিন চুনসইনফোম্যাপের আইটেমগুলির উপরে লুপ করে। এর মানে কী?

ডিফল্ট ক্যাশে গোষ্ঠীর একটি অগ্রাধিকার 10 থাকে যা ওভারওয়েটসকমোন (যার মাত্র 5 থাকে)। এর অর্থ হ'ল ডিফল্টটি সেরা মিলের এন্ট্রি এবং এটি প্রথমে প্রক্রিয়া করা উচিত।

অন্য সমস্ত প্রয়োজনীয়তা পূরণ হয়ে গেলে ওয়েবপ্যাকটি খণ্ডসইনফোম্যাপ অভিধানের অন্যান্য সম্ভাব্য অংশগুলি থেকে সমস্ত অংশের মডিউলগুলি সরিয়ে দেয়। যদি কোনও মডিউল না থাকে তবে মডিউলটি মুছে ফেলা হবে

এইভাবে ডিফল্ট ~ এএ-মডিউল ~ বিবি-মডিউলটি কমন অংশের চেয়ে বেশি অগ্রাধিকার নেয়। পরেরটি মুছে ফেলা হয়েছে কারণ এটিতে মডিউলগুলির একই তালিকা রয়েছে।

সর্বশেষ তবে সর্বনিম্ন নয় পদক্ষেপটি হ'ল কিছু অপ্টিমাইজেশান করা (যেমন নকলগুলি সরান) এবং ম্যাক্স সাইজের মতো সমস্ত প্রয়োজনীয়তা পূরণ হয়েছে কিনা তা নিশ্চিত করা।

স্প্লিটচঙ্কসপ্লাগিনের পুরো উত্স কোডটি এখানে পাওয়া যাবে

আমরা আবিষ্কার করেছি যে ওয়েবপ্যাক তিনটি বিভিন্ন উপায়ে খণ্ড সৃষ্টি করে:

  • প্রতিটি প্রবেশের জন্য
  • গতিশীল লোড মডিউল জন্য
  • SplitChunksPlugin এর সহায়তায় ভাগ করা কোডের জন্য
খণ্ডের ধরণের দ্বারা কৌণিক সিএলআই আউটপুট

এখন আসুন ভাগ করা কোড রাখার সর্বোত্তম উপায় কী তা সম্পর্কে আমাদের সন্দেহগুলিতে ফিরে যাই।

অলস মডিউলগুলির মধ্যে কীভাবে উপাদানগুলি ভাগ করা যায়

যেমনটি আমরা আমাদের সাধারণ কৌণিক অ্যাপ্লিকেশনটিতে দেখেছি, ওয়েবপ্যাকটি ab.module এর জন্য পৃথক অংশ তৈরি করেছে তবে মূল অংশে সিডি.মডিউল অন্তর্ভুক্ত করেছে।

আসুন এই পোস্ট থেকে মূল গ্রহণের সংক্ষিপ্তসার:

  • যদি আমরা সমস্ত ভাগ করা পাইপ, নির্দেশনা এবং সাধারণ উপাদানগুলিকে একটি বড় ভাগ করা মডিউলে রাখি এবং তারপরে এটিকে সর্বত্র আমদানি করি (সিঙ্ক এবং অ্যাসিঙ্ক অংশগুলির ভিতরে) তবে সেই কোডটি আমাদের প্রাথমিক মূল অংশে থাকবে। সুতরাং আপনি যদি কোনও খারাপ প্রাথমিক লোড পারফরম্যান্স পেতে চান তবে এটি যাওয়ার উপায়।
  • অন্যদিকে, আমরা যদি অলস লোডযুক্ত মডিউলগুলিতে সাধারণত ব্যবহৃত কোডটি বিভক্ত করি তবে একটি নতুন ভাগ করা অংশ তৈরি হবে এবং কেবলমাত্র সেই অলস মডিউলগুলি লোড হলেই লোড হবে। এটি অ্যাপ্লিকেশন প্রাথমিক লোড উন্নত করা উচিত। তবে এটি বুদ্ধিমানের সাথে করুন কারণ মাঝে মাঝে একটি অংশে ছোট কোড স্থাপন করা ভাল যে পৃথক অংশের বোঝার জন্য অতিরিক্ত অনুরোধ থাকা দরকার।

উপসংহার

আমি আশা করি এখন আপনার স্পষ্টতই কৌণিক সিএলআই এর আউটপুট বুঝতে হবে এবং স্প্লিটচঙ্কসপ্লাগিন খণ্ডগুলি ব্যবহার করে এন্ট্রি, গতিশীল এবং বিভক্তের মধ্যে পার্থক্য করা উচিত।

শুভ কোডিং!