অলস লোডিং কী?


91

অলস লোডিং কী?

[কয়েকটি উত্তর পড়ার পরে সম্পাদনা করুন] কেন লোকেরা প্রায়শই এই শব্দটি ব্যবহার করে?

বলুন আপনি কেবল একটি এএসপি / এডিও রেকর্ডসেট ব্যবহার করেন এবং গ্রিডভিউয়ের জন্য এটি ডেটা বা ADO.NET ডেটাসোর্স দিয়ে লোড করুন।

আমার ধারণা আমার লোকেরা কেন অলস লোডিং শব্দটি ব্যবহার করে, "অন্যান্য" ধরণের কী?

উত্তর:


225

একে অলস লোডিং বলা হয় কারণ অলস ব্যক্তির মতো আপনিও কিছু না করতে চান যা আপনি চান না। বিপরীতটি হ'ল ইজিার লোডিং, যেখানে আপনার প্রয়োজনের অনেক আগেই আপনি এখনই কিছু লোড করুন।

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

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


@ মাইক স্টোন, হাই, আপনি কী ব্যাখ্যা করতে পারেন কখন অলস এবং আগ্রহী লোডিং ব্যবহার করবেন? আমি জানি, আমি যদি ফাইল ম্যানেজারটি চালিত করি তবে এটি অলস লোডিং ডিজাইনটি ব্যবহার করে।
অ্যালস্টন

40

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

যথারীতি উইকিপিডিয়ায় আরও বিশদ রয়েছে।


14

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

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

http://www.youtube.com/watch?v=2SrfdAkwmFo


9

উইকিপিডিয়া'র সংজ্ঞা অলস লোডিং একটি ডিজাইনের প্যাটার্ন যা সাধারণত কম্পিউটার প্রোগ্রামিংয়ে ব্যবহৃত হয় যে কোনও পয়েন্টের প্রয়োজন হয় না এমন অবধি তার সূচনা স্থগিত করতে। ...

http://en.wikedia.org/wiki/Lazy%20০ লোডিং


7

অলস লোডিং শব্দটি সাধারণত অবজেক্ট রিলেশনাল ম্যাপারদের নিয়ে কথা বলার সময় ব্যবহৃত হয়। আপনি যদি ADO.NET সরাসরি ব্যবহার করেন তবে আপনি সর্বদা আগ্রহী লোডিং পান (যেমন এটি আপনি যা নির্দিষ্ট করেন তা সর্বদা লোড হয়)।

ও-ম্যাপার্স যেমন হাইবারনেট প্রক্সী অবজেক্টগুলি ফিরিয়ে দেয়াকে সমর্থন করে যা আপনি যখন ডেটা অ্যাক্সেস করেন কেবল তখনই সঠিক ডেটা দিয়ে "পূর্ণ" হয়। এইভাবে আপনি কেবলমাত্র সত্যিকারের ডেটা লোড করেন। এটি একটি ব্যবহারযোগ্য বৈশিষ্ট্য যখন আপনি ডাটাবেস থেকে লোড হয়ে যেতে পারে এমন বস্তুর মধ্যে প্রচুর সম্পর্ক নির্দিষ্ট করেন, আপনি ওআর-ম্যাপারটিকে সম্পর্কিত সমস্ত অবজেক্ট এবং সম্পর্কিত বস্তু সম্পর্কিত জিনিসগুলি ইত্যাদি লোড করতে চান না। এর ফলে আপনার পুরো ডাটাবেসটি লোড হয়ে যেতে পারে।

আপনার সমস্যা মডেলটির যত্নবান ডিজাইনের মাধ্যমেও এই সমস্যাটি প্রতিরোধ করা যেতে পারে। (সমষ্টি ব্যবহার করে এবং ডোমেন চালিত ডিজাইনের মতো কেবলমাত্র সামগ্রিক শিকড়গুলি লোড করা অলস লোডিং ব্যবহার না করেই এটিকে ঘুরে দেখার এক উপায়)।

অলস লোডিংয়ের ফলে আপনি একবারে প্রয়োজনীয় সমস্ত ডেটা পুনরুদ্ধার না করে ম্যাপারকে প্রচুর ছোট ডাটাবেস অ্যাক্সেস করতে পারবেন in এর ফলে পারফরম্যান্স সমস্যাও দেখা দিতে পারে।


5

আমি লিখেছি এমন কিছু বাস্তব পাইথন কোডের উদাহরণ এখানে:

class Item(Model):
    ...
    @property
    def total(self):
        if not hasattr(self, "_total"):
            self._total = self.quantity \
                  + sum(bi.quantity for bi in self.borroweditem_set.all())
        return self._total

মূলত, আমার একটি আইটেম ক্লাস রয়েছে যা আমাদের ইনভেন্টরির একটি আইটেম প্রতিনিধিত্ব করে। আমাদের কাছে সামগ্রিক আইটেমের সংখ্যা হ'ল আমাদের নিজস্ব সংখ্যাটি হ'ল আমরা বিভিন্ন উত্স থেকে যে সমস্ত আইটেম ধার নিয়েছি তার সমষ্টি sum এই সংখ্যাগুলি সমস্ত আমাদের ডাটাবেসে সঞ্চিত রয়েছে এবং মোটটি আসলে অনুরোধ না করা অবধি এটি গণনা করা অর্থহীন হবে (যেহেতু প্রায়শই সামগ্রিকভাবে অনুরোধ করা না করে আইটেমগুলি ব্যবহৃত হবে)।

সুতরাং মোট সম্পত্তিটি _ মোট ক্ষেত্রটি বিদ্যমান কিনা তা পরীক্ষা করে। যদি এটি না হয়, তবে সম্পত্তি কোডটি ডাটাবেসটিকে জিজ্ঞাসা করে এবং এটি গণনা করে, তারপরে মানটি _ মোট ক্ষেত্রের মধ্যে সংরক্ষণ করে যাতে পরের বার অনুরোধ করা হলে এটি পুনরায় সংশোধন করার প্রয়োজন হয় না।


4

অলস লোডিং: আপনার প্রয়োজন হয় না এমন জিনিস দিয়ে আপনি আপনার সময় (না আপনার স্মৃতি) নষ্ট করবেন না। তারপরে আপনার যখন এটির প্রয়োজন হবে, এটি বেশি সময় নেয়, তবে এটি ঠিক।

জীবন থেকে উদাহরণ: প্রকৃতপক্ষে সেই ফরাসি শব্দগুচ্ছটি শেখার পরিবর্তে আপনি বাক্যাংশগুলি একবারে শিখে ফেলতে পারেন, যেমনগুলি প্রয়োজন। এটি কখন বোঝায়? যদি আপনি কেবলমাত্র অল্প সময়ের জন্য ফ্রান্সে যাচ্ছেন (যেমন, আপনার প্রচুর বাক্যাংশের প্রয়োজন হবে না) বা খুব শীঘ্রই আপনাকে চলে যেতে হবে। আপনি যদি সেখানে দু'বছর থাকেন এবং / অথবা আপনার অধ্যয়নের জন্য দীর্ঘ সময় থাকে তবে কেবল পুরো বাক্যাংশপুস্তকে সামনের দিকে (আগ্রহী লোডিং) শিখতে আরও বেশি দক্ষ হতে পারে।

[ ডব্লু কেআরপিতে ভেনাস দ্বারা গ্যাং শব্দে পড়ানো হিসাবে পরমাণু দ্বারা অনুপ্রাণিত ।]


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

4
@ সেভেন্থ এলিমেন্ট আমি যুক্তি দিচ্ছি না যে এটি ঠিক আছে। এটি অলস বোঝা বোঝার জন্য ভিত্তি। এমন ক্ষেত্রে যেখানে এটি সূক্ষ্ম না হয় (কারণ উদাহরণস্বরূপ, ইউআইটি স্বাচ্ছন্দ্য হয়ে যায় বা অন্য কোনও কারণে) আপনি আগ্রহী লোডিংয়ের পক্ষে বেছে নিতে পারেন।
ড্যান রোজনস্টার্ক 31'12

4

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

অর্থাৎ ধরুন আপনার কাছে এমন কোনও রেকর্ড থাকা দরকার যাতে বেশ কয়েকটি টেবিলের যোগ রয়েছে। আপনি যদি একবারে এটি আনেন তবে আপনি কেবল প্রধান টেবিলটি আনতে বেশি সময় লাগবে। অলস-লোডিং ব্যবহার করে বাকি তথ্য কেবল প্রয়োজন হলেই এনে দেওয়া হবে। সুতরাং এটি নির্দিষ্ট পরিস্থিতিতে 'দক্ষ-লোডিং'।

অন্যান্য ধরণের 'লোডিং' হ'ল:

  1. আগ্রহী লোড হচ্ছে - সংযুক্ত সমস্ত টেবিল একবারে লোড হচ্ছে।

3

একটি নকশা প্যাটার্ন।

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

এটি আপনার কোডকে আরও কার্যকর করে তোলে এবং মেমরির ব্যবহার পরিচালনা করতে সহায়তা করে।

অলস লোডিংয়ের উদাহরণসমূহ:

ঘোস্ট অলস সূচনা মান ধারক


3

অলস লোডিং এর কিছু সুবিধা:

  1. অ্যাপ্লিকেশন শুরুর সময় হ্রাস করে।
  2. অন-চাহিদা লোড হওয়ার কারণে অ্যাপ্লিকেশনটি কম স্মৃতি গ্রাস করে।
  3. সার্ভারের অপ্রয়োজনীয় অনুরোধ এড়ানো হয়েছে।

2

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

এটি এজাক্স বা জ্যাকুয়েরির মাধ্যমে সাধারণ ভিজ্যুয়াল / ইন্টারেক্টিভ ডিজাইনের প্যাটার্নের হয়ে উঠছে।

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



0

গিক্সফরজিক্স অনুসারে, অলস লোডিং একটি সফ্টওয়্যার ডিজাইনের প্যাটার্ন যেখানে কোনও বস্তুর প্রারম্ভিককরণ তখনই ঘটে যখন ব্যবহারের সরলতা সংরক্ষণ এবং কার্যকারিতা উন্নত করার আগে প্রয়োজন হয় না and

https://www.geeksforgeeks.org/lazy-loading-design-pattern/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.