প্ৰথম C++ (m)আবণ্টন সদায় ৭২ KB কিয় হয়? | Mewayz Blog Skip to main content
Hacker News

প্ৰথম C++ (m)আবণ্টন সদায় ৭২ KB কিয় হয়?

মন্তব্য

1 min read Via joelsiks.com

Mewayz Team

Editorial Team

Hacker News

আপোনাৰ প্ৰথম C++ আবণ্টনৰ আঁৰৰ ৰহস্য

আপুনি এটা সৰল C++ প্ৰগ্ৰেম লিখে। এটা মাত্ৰ নতুন int। চাৰিটা বাইট। আপুনি strace বা আপোনাৰ প্ৰিয় মেমৰি প্ৰ'ফাইলাৰ ফায়াৰ আপ কৰে, আৰু তাতেই আছে — আপোনাৰ প্ৰক্ৰিয়াই মাত্ৰ কাৰ্য্যকৰপ্ৰণালীৰ পৰা প্ৰায় 72 KB অনুৰোধ কৰিছে । ৪ বাইট নহয়। ৬৪ বাইট নহয়। এটা সম্পূৰ্ণ ৭২ কেবি। যদি আপুনি কেতিয়াবা সেই নম্বৰটোলৈ চাইছে আৰু ভাবিছে যে আপোনাৰ টুলিঙে আপোনাক মিছা কথা কৈছিল নেকি, তেন্তে আপুনি অকলশৰীয়া নহয়। এই আপাত দৃষ্টিত অদ্ভুত আচৰণ হৈছে প্ৰথমবাৰৰ বাবে মেমৰি ইণ্টাৰনেলত খন্দা C++ ডেভেলপাৰসকলৰ মাজত সঘনাই সোধা প্ৰশ্নসমূহৰ ভিতৰত এটা, আৰু উত্তৰটোৱে আমাক আপোনাৰ ক'ড আৰু প্ৰকৃত হাৰ্ডৱেৰৰ মাজত বহি থকা স্তৰসমূহৰ মাজেৰে এটা আকৰ্ষণীয় যাত্ৰাত লৈ যায়।

আপুনি নতুন

ফোন কৰিলে কি হয়

72 KB সংখ্যা বুজিবলৈ, আপুনি সম্পূৰ্ণ আবণ্টন শৃংখল অনুসৰণ কৰিব লাগিব। যেতিয়া আপোনাৰ C++ ক'ডে new int এক্সিকিউট কৰে, কমপাইলাৰে সেইটোক অপাৰেটৰ new লৈ এটা কললৈ অনুবাদ কৰে, যি বেছিভাগ Linux চিস্টেমত glibc ৰ পৰা malloc লে ডেলিগেট কৰে। কিন্তু malloc এ কাৰ্ণেলক প্ৰত্যক্ষভাৱে ৪ বাইট মেমৰি বিচৰা নাই । কাৰ্ণেলে পৃষ্ঠাসমূহত কাম কৰে — সাধাৰণতে x86_64 ত 4 KB — আৰু এটা চিস্টেম কলৰ খৰচ এটা সৰল মেমৰি অভিগমৰ তুলনাত অতিশয়। প্ৰতিটো ব্যক্তিগত আবণ্টনৰ বাবে brk() বা mmap() কল কৰিলে যিকোনো অতুচ্ছ কাৰ্য্যক্ৰম বন্ধ হৈ যাব।

তাৰ পৰিবৰ্তে, glibc ৰ মেমৰি আবণ্টক — ptmalloc2 নামৰ এটা প্ৰণয়ন, নিজেই ডাগ লিয়াৰ ক্লাছিক dlmalloc ৰ পৰা নামি অহা — এটা মধ্যভোগী হিচাপে কাম কৰে। ই কাৰ্ণেলৰ পৰা মেমৰিৰ ডাঙৰ ব্লকসমূহ আগতীয়াকৈ অনুৰোধ কৰে, তাৰ পিছত আপোনাৰ প্ৰগ্ৰামৰ প্ৰয়োজন অনুসৰি সিহতক সৰু টুকুৰাত খোদিত কৰে । এইটো আপোনাৰ প্ৰথম 4-বাইট আবণ্টনে কাৰ্য্যকৰপ্ৰণালীলৈ এটা বহুত ডাঙৰ অনুৰোধ ট্ৰিগাৰ কৰাৰ মৌলিক কাৰণ। আবণ্টনকাৰীয়ে অপচয় কৰা নাই। ই হৈছে কৌশলগত হৈ থকা।

72 KB বিভাজন কৰা: বাইটসমূহ ক'লৈ যায়

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

প্ৰথমে, glibc ৰ malloc এ মূল এৰিনা আৰম্ভ কৰে — প্ৰাথমিক বহী ৰখা গঠন যি মূল থ্ৰেডত সকলো আবণ্টন অনুসৰণ কৰে। এই ক্ষেত্ৰত হিপৰ বাবে মেটাডাটা, মুক্ত-তালিকা পইণ্টাৰসমূহ, আৰু বিভিন্ন আবণ্টন আকাৰৰ বাবে বিন গঠনসমূহ অন্তৰ্ভুক্ত কৰা হৈছে। আবণ্টকে sbrk() ৰ যোগেদি কাৰ্য্যক্ৰম বিৰতি সম্প্ৰসাৰণ কৰে, আৰু প্ৰাৰম্ভিক সম্প্ৰসাৰণ M_TOP_PAD নামৰ এটা আভ্যন্তৰীণ প্ৰাচলৰ দ্বাৰা পৰিচালিত হয়, যি অবিকল্পিতভাৱে 128 KB পেডিং হয়। কিন্তু, প্ৰকৃত প্ৰাৰম্ভিক অনুৰোধ পৃষ্ঠা প্ৰান্তিককৰণ আৰু বৰ্ত্তমানৰ বিৰতি অৱস্থানৰ বাবে সামঞ্জস্য কৰা হয়, যাৰ ফলত প্ৰায়ে এটা সৰু প্ৰথম অনুৰোধ হয় — সাধাৰণতে এটা সদ্য আৰম্ভ কৰা প্ৰক্ৰিয়াত সেই 72 KB সংখ্যাৰ ওচৰত লেণ্ড কৰা।

দ্বিতীয়ত, glibc 2.26 ৰ পৰা, আবণ্টকে প্ৰথম ব্যৱহাৰত এটা থ্ৰেড-স্থানীয় কেশ্ব (tcache) আৰম্ভ কৰে । tcache ত 64 টা বিন থাকে (প্ৰতি সৰু-আবণ্টন আকাৰ শ্ৰেণীত এটা), প্ৰত্যেকেই 7 টা কেচ কৰা টুকুৰালৈকে ধৰি ৰাখিবলৈ সক্ষম। tcache_perthread_struct এ নিজেই প্ৰায় 1 KB খৰচ কৰে, কিন্তু ইয়াক আৰম্ভ কৰাৰ কাৰ্য্যই বহল এৰিনা প্ৰতিষ্ঠাক ট্ৰিগাৰ কৰে। তৃতীয়তে, C++ চলনসময়ে ইতিমধ্যে আপোনাৰ main() চলোৱাৰ আগতে আবণ্টনসমূহ সম্পাদন কৰিছে — স্থিতিশীল নিৰ্মাতাসমূহ, std::cout আৰু বন্ধুসকলৰ বাবে iostream বাফাৰ আৰম্ভণি, আৰু স্থানীয় প্ৰতিষ্ঠা সকলোৱে সেই প্ৰাৰম্ভিক হিপ ফুটপ্ৰিণ্টত অৰিহণা যোগায়।

এৰিনা ব্যৱস্থাপ্ৰণালী আৰু প্ৰি-আবণ্টন কিয় স্মাৰ্ট

এটা টুকুৰা-টুকুৰকৈ অনুৰোধ কৰাৰ পৰিৱৰ্তে মেমৰিৰ এটা যথেষ্ট অংশ পূৰ্ব-আবণ্টন কৰাৰ সিদ্ধান্ত প্ৰণয়নৰ দুৰ্ঘটনা নহয়। ই হৈছে দশক দশক ধৰি চিষ্টেম প্ৰগ্ৰেমিং অভিজ্ঞতাত শিপাই থকা এটা ইচ্ছাকৃত অভিযান্ত্ৰিক ট্ৰেডঅফ। brk() বা mmap() লৈ প্ৰতিটো কলে ব্যৱহাৰকাৰী স্থানৰ পৰা কাৰ্ণেল স্থানলৈ এটা প্ৰসংগ চুইচ, প্ৰক্ৰিয়াৰ ভাৰ্চুৱেল মেমৰি মেপিংসমূহৰ পৰিবৰ্তন, আৰু সম্ভাৱ্য পৃষ্ঠা টেবুল আপডেইটসমূহ জড়িত কৰে। আধুনিক হাৰ্ডৱেৰত, এটা চিস্টেম কলৰ খৰচ প্ৰায় ১০০-২০০ নেন'ছেকেণ্ড — পৃথকভাৱে তুচ্ছ, স্কেলত বিপৰ্যয়জনক।

এটা প্ৰগ্ৰাম বিবেচনা কৰক যি আৰম্ভণিৰ সময়ত 10,000 সৰু আবণ্টন কৰে। প্ৰি-আবণ্টন অবিহনে, ইয়াৰ অৰ্থ হ'ব 10,000 চিস্টেম কল, প্ৰায় 1-2 মিলিছেকেণ্ডৰ বিশুদ্ধ ওভাৰহেডৰ খৰচ। এটা এৰিনা-ভিত্তিক আবণ্টনৰ সৈতে, প্ৰথম আবণ্টনে এটা চিস্টেম কল ট্ৰিগাৰ কৰে, আৰু পৰৱৰ্তী 9,999 আবণ্টনসমূহক পইণ্টাৰ গাণিতিক আৰু সংযুক্ত-তালিকা কাৰ্য্যসমূহৰ যোগেদি সম্পূৰ্ণৰূপে ব্যৱহাৰকাৰী স্থানত সেৱা কৰা হয় — প্ৰত্যেকেই প্ৰায় 10-50 নেন'ছেকেণ্ড লয়। অংকটো নিৰ্দ্বিধায়: প্ৰি-আবণ্টনে মাত্ৰাৰ ক্ৰমত জয়ী হয়।

<ব্লককোট>

আপুনি আপোনাৰ প্ৰথম আবণ্টনত দেখা 72 KB অপচয় কৰা মেমৰি নহয় — ই এটা পৰিৱেশন বিনিয়োগ। আবণ্টনকাৰীয়ে বাজি ধৰিছে যে আপোনাৰ প্ৰগ্ৰেমে অতি সোনকালে অধিক আবণ্টন কৰিব, আৰু প্ৰায় প্ৰতিটো বাস্তৱ জগতৰ পৰিস্থিতিত, সেই বাজিয়ে সুন্দৰভাৱে ফল দিয়ে। অব্যৱহৃত ভাৰ্চুৱেল ঠিকনা স্থানৰ খৰচ আধুনিক ৬৪-বিট ব্যৱস্থাপ্ৰণালীত মূলতঃ শূন্য।

ৰ দ্বাৰা

ভাৰ্চুৱেল মেমৰি বনাম শাৰীৰিক মেমৰি: ইয়াৰ কিয় কোনো গুৰুত্ব নাই

প্ৰথমবাৰৰ বাবে এই আচৰণৰ সন্মুখীন হোৱা বিকাশকসকলৰ মাজত এটা সাধাৰণ চিন্তা হৈছে সম্পদৰ অপচয়। যদি মোক মাত্ৰ ৪ বাইট লাগে, তেন্তে মোৰ প্ৰগ্ৰেমে ৭২ কেবি কিয় খৰচ কৰিছে? সমালোচনাত্মক অন্তৰ্দৃষ্টিটো হ’ল যে ভাৰ্চুৱেল স্মৃতিশক্তি ভৌতিক স্মৃতিশক্তি নহয়। যেতিয়া glibc এ কাৰ্য্যক্ৰম বিৰতি 72 KB দ্বাৰা সম্প্ৰসাৰিত কৰে, কাৰ্ণেলে প্ৰক্ৰিয়াৰ ভাৰ্চুৱেল মেমৰি মেপিংসমূহ আপডেইট কৰে, কিন্তু ই সেই পৃষ্ঠাসমূহক দৈহিক RAM ৰ সৈতে তৎক্ষণাত বেক নকৰে। প্ৰকৃত ভৌতিক পৃষ্ঠাসমূহ চাহিদা অনুসৰি পৃষ্ঠাৰ ত্ৰুটিৰ যোগেদি আবণ্টন কৰা হয় — কেৱল যেতিয়া আপোনাৰ প্ৰগ্ৰাম এটা নিৰ্দিষ্ট ঠিকনালৈ লিখে তেতিয়াহে কাৰ্ণেলে ইয়ালৈ এটা প্ৰকৃত মেমৰি পৃষ্ঠা নিযুক্ত কৰে।

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

ইয়াৰ অৰ্থ হৈছে যে যদিও আপোনাৰ প্ৰক্ৰিয়াৰ ভাৰ্চুৱেল আকাৰ 72 KB বৃদ্ধি হয়, ইয়াৰ বাসিন্দা ছেট আকাৰ (RSS) — প্ৰকৃততে ব্যৱহাৰ কৰা ভৌতিক RAM ৰ পৰিমাণ — কেৱল আপুনি প্ৰকৃততে স্পৰ্শ কৰা পৃষ্ঠাসমূহৰ দ্বাৰা বৃদ্ধি হয়। এটা নতুন int ৰ বাবে, সেয়া সাধাৰণতে এটা 4 KB পৃষ্ঠা, লগতে এৰিনা মেটাডাটাই যি পৃষ্ঠা দখল কৰে। বাকী ভাৰ্চুৱেল স্থান তাত বহি থাকে, ব্যৱহাৰৰ বাবে সাজু, ঠিকনা স্থানৰ বাহিৰে একো খৰচ নহয় — যাৰ ভিতৰত আপোনাৰ এটা ৬৪-বিট Linux ব্যৱস্থাপ্ৰণালীত ১২৮ টিবি আছে ।

উৎপাদন এপ্লিকেচনসমূহ প্ৰফাইলিং আৰু নিৰীক্ষণ কৰাৰ সময়ত এই পাৰ্থক্য জটিল। যদি আপুনি চফ্টৱেৰ নিৰ্মাণ কৰি আছে যি প্ৰকৃত সম্পদ ব্যৱহাৰ অনুসৰণ কৰিব লাগে — সেয়া এটা SaaS বেকএণ্ড হওক, এটা মাইক্ৰ'চাৰ্ভিচ হওক, বা ব্যৱসায়িক কাৰ্য্যসমূহৰ বাবে Mewayzৰ দৰে প্লেটফৰ্মসমূহত চলি থকা এটা বিশ্লেষণ পাইপলাইন হওক — আপুনি ভাৰ্চুৱেল আকাৰৰ পৰিবৰ্তে সদায় RSS নিৰীক্ষণ কৰিব লাগে। /proc/[pid]/smaps, valgrind --tool=massif, আৰু pmap ৰ দৰে সঁজুলিসমূহে আপোনাক বিভ্ৰান্তিকৰ ভাৰ্চুৱেল মেমৰি চিত্ৰসমূহৰ পৰিবৰ্তে সঠিক ভৌতিক মেমৰি ফুটপ্ৰিণ্ট দিব পাৰে।

বিভিন্ন আবণ্টনকাৰীয়ে প্ৰথম আবণ্টন কেনেকৈ নিয়ন্ত্ৰণ কৰে

72 KB চিত্ৰ glibc ৰ ptmaloc2 ৰ বাবে নিৰ্দিষ্ট । আন আবণ্টনকাৰীসকলে বিভিন্ন ট্ৰেডঅফ কৰে, আৰু সেই অনুসৰি প্ৰাৰম্ভিক আবণ্টনৰ ওভাৰহেড ভিন্ন হয়। পৰিৱেশন-সংবেদনশীল এপ্লিকেচনসমূহৰ বাবে এটা আবণ্টক নিৰ্ব্বাচন কৰাৰ সময়ত এই পাৰ্থক্যসমূহ বুজাটো মূল্যৱান।

  • jemalloc (ফেচবুক, FreeBSD দ্বাৰা ব্যৱহাৰ কৰা) — থ্ৰেড-স্থানীয় কেশ্বসমূহৰ সৈতে এটা অধিক দানাদাৰ এৰিনা গঠন ব্যৱহাৰ কৰে। প্ৰাৰম্ভিক অভাৰহেড অধিক হোৱাৰ প্ৰৱণতা থাকে (সততে ২০০+ কেবি) কিন্তু লক কন্টেন্টন হ্ৰাস পোৱাৰ বাবে উন্নত বহু-থ্ৰেডেড পৰিৱেশন প্ৰদান কৰে।
  • tcmalloc (Google ৰ থ্ৰেড-কেচিং মেলক) — অবিকল্পিতভাৱে প্ৰায় 2 MB ৰ এটা প্ৰতি-থ্ৰেড কেশ্ব আবণ্টন কৰে, আক্ৰমণাত্মক পূৰ্ব-আবণ্টনৰ সৈতে। প্ৰাৰম্ভিক ওভাৰহেড বেছি, কিন্তু পৰৱৰ্তী সৰু আবণ্টনসমূহ অতি দ্ৰুত।
  • musl libc ৰ malloc — সকলো আবণ্টনৰ বাবে mmap ৰ ওপৰত ভিত্তি কৰি এটা বহুত সৰল নকশা ব্যৱহাৰ কৰে । প্ৰাৰম্ভিক ওভাৰহেড নূন্যতম (সততে প্ৰতিটো আবণ্টনত মাত্ৰ 4 KB), কিন্তু প্ৰতি আবণ্টনৰ খৰচ অধিক সঘনাই চিস্টেম কলৰ বাবে।
  • mimalloc (Microsoft) — 64 MB খণ্ডসমূহৰ সৈতে খণ্ড-ভিত্তিক আবণ্টন ব্যৱহাৰ কৰে। প্ৰথম আবণ্টনে এটা 64 MB ভাৰ্চুৱেল সংৰক্ষণ (নূন্যতম ভৌতিক প্ৰতিশ্ৰুতিৰ সৈতে), ব্যতিক্ৰমী স্থানীয়তা আৰু থ্ৰুপুটৰ বাবে ট্ৰেডিং ঠিকনা স্থান ট্ৰিগাৰ কৰে।

এই আবণ্টনকাৰীসমূহৰ মাজৰ পছন্দ সম্পূৰ্ণৰূপে আপোনাৰ কাৰ্য্যভাৰৰ ওপৰত নিৰ্ভৰ কৰে। গধুৰ বহু-থ্ৰেডযুক্ত আবণ্টনৰ সৈতে দীৰ্ঘ-চলিত চাৰ্ভাৰ এপ্লিকেচনসমূহৰ বাবে, jemalloc বা tcmalloc এ সাধাৰণতে glibc ৰ অবিকল্পিতক আউটপাৰ্ফৰ্ম কৰে। মেমৰি-সীমিত এম্বেডেড চিস্টেমসমূহৰ বাবে, musl ৰ সৰল পদ্ধতি কম থ্ৰুপুটৰ সত্ত্বেও পছন্দনীয় হব পাৰে। বেছিভাগ সাধাৰণ-উদ্দেশ্য ডেস্কটপ আৰু চাৰ্ভাৰ এপ্লিকেচনৰ বাবে, ptmaloc2 ৰ 72 KB প্ৰাৰম্ভিক ওভাৰহেডে এটা যুক্তিসংগত অবিকল্পিত প্ৰতিনিধিত্ব কৰে যি টিউনিং অবিহনে ভালদৰে কাম কৰে।

প্ৰাথমিক আবণ্টন আচৰণ টিউন কৰা

যদি অবিকল্পিত 72 KB প্ৰাৰম্ভিক ওভাৰহেড আপোনাৰ ব্যৱহাৰৰ ক্ষেত্ৰৰ বাবে প্ৰকৃততে সমস্যাজনক — হয়তো আপুনি হাজাৰ হাজাৰ অল্পকালীন প্ৰক্ৰিয়াৰ জন্ম দিছে, প্ৰত্যেকেই মাত্ৰ মুষ্টিমেয় আবণ্টন কৰিছে — glibc এ mallopt() আৰু MALLOC_ পৰিয়াল চলকসমূহৰ যোগেদি কেইবাটাও টিউনেবল প্ৰদান কৰে।

M_TOP_PAD প্ৰাচল নিয়ন্ত্ৰণ কৰে যে আবণ্টকে কিমান অতিৰিক্ত মেমৰি অনুৰোধ কৰে তৎক্ষণাত প্ৰয়োজনীয়তকৈ। mallopt(M_TOP_PAD, 0) ৰ সৈতে ইয়াক 0 লে সংহতি কৰিলে আবণ্টনকাৰীক কেৱল প্ৰয়োজনীয় অনুৰোধ কৰিবলৈ কয়, প্ৰাৰম্ভিক ওভাৰহেড যথেষ্ট হ্ৰাস কৰি। M_MMAP_THRESHOLD প্ৰাচলে আবণ্টনসমূহে এৰিনাৰ পৰিবৰ্তে mmap ব্যৱহাৰ কৰা আকাৰ নিয়ন্ত্ৰণ কৰে। M_TRIM_THRESHOLD এ নিয়ন্ত্ৰণ কৰে যেতিয়া মুক্ত মেমৰি OS লৈ ঘূৰাই দিয়া হয়। আৰু glibc 2.26 ৰ পৰা, glibc.malloc.tcache_count আৰু glibc.malloc.tcache_max টিউনেবলসমূহে আপোনাক থ্ৰেড কেশ্ব আচৰণ নিয়ন্ত্ৰণ কৰিবলৈ দিয়ে।

কিন্তু, এটা সতৰ্কবাণী: সাৱধানে বেঞ্চমাৰ্কিং নকৰাকৈ এই প্ৰাচলসমূহ টিউন কৰিলে প্ৰায় সদায় কথাবোৰ বেয়া হৈ পৰে। অবিকল্পিতসমূহক বিস্তৃত বাস্তৱ-পৃথিৱীৰ প্ৰফাইলিঙৰ ওপৰত ভিত্তি কৰি বাছনি কৰা হৈছিল, আৰু সিহঁতে বেছিভাগ কাৰ্য্যভাৰৰ বাবে এটা মিঠা ঠাই প্ৰতিনিধিত্ব কৰে। যদিহে আপোনাৰ উৎপাদন প্ৰফাইলিঙৰ পৰা শক্তিশালী প্ৰমাণ নাই যে malloc ওভাৰহেড এটা বটলনেক — আৰু আপুনি আপোনাৰ পৰিবৰ্তনৰ প্ৰভাৱ জুখিছে — অবিকল্পিতসমূহ অকলে এৰি দিয়ক। আবণ্টনকাৰীৰ অকাল অনুকূলন হৈছে য়াক শ্বেভিঙৰ এটা বিশেষভাৱে কূটনৈতিক ধৰণ যিয়ে নগণ্য লাভৰ বাবে অগণন অভিযান্ত্ৰিক ঘণ্টা খৰচ কৰিছে।

ই আমাক চিস্টেম প্ৰগ্ৰেমিংৰ বিষয়ে কি শিকাই

৭২ কেবি প্ৰথম-আবণ্টন ৰহস্য, ইয়াৰ মূলত, বিমূৰ্ত স্তৰৰ বিষয়ে এটা পাঠ। C++ এ আপোনাক ভ্ৰম দিয়ে যে new int এ 4 বাইট আবণ্টন কৰে। ভাষাৰ মানদণ্ডই তেনেকৈয়ে কয়। আপোনাৰ মানসিক মডেলে তেনেকৈয়ে কৈছে। কিন্তু আপোনাৰ ক'ড আৰু হাৰ্ডৱেৰৰ মাজত অত্যাধুনিক চিস্টেমসমূহৰ এটা ষ্টেক বহি আছে — C++ চলনসময়, C লাইব্ৰেৰী আবণ্টনকাৰী, কাৰ্ণেলৰ ভাৰ্চুৱেল মেমৰি উপচিস্টেম, আৰু হাৰ্ডৱেৰৰ MMU আৰু TLB — প্ৰত্যেকেই নিজৰ নিজৰ আচৰণ, অনুকূলন, আৰু ওভাৰহেড যোগ কৰে।

এয়া কোনো ত্ৰুটি নহয়। ই চিষ্টেম চফট্ ৱেৰৰ সমগ্ৰ বিন্দু। প্ৰতিটো স্তৰ এটা প্ৰকৃত সমস্যা সমাধান কৰিবলে আছে: আবণ্টনকাৰী আছে যাতে আপুনি প্ৰতিটো আবণ্টনৰ বাবে ব্যৱস্থাপ্ৰণালীৰ কল কৰিব নালাগে । ভাৰ্চুৱেল মেমৰি চিস্টেম আছে যাতে আপুনি প্ৰত্যক্ষভাৱে ভৌতিক মেমৰি ব্যৱস্থাপনা কৰিব নালাগে । পৃষ্ঠাৰ দোষ নিয়ন্ত্ৰক আছে গতিকে মেমৰি এলেহুৱা আৰু কাৰ্যক্ষমভাৱে প্ৰতিশ্ৰুতিবদ্ধ কৰা হয়। প্ৰতিটো স্তৰে বৃহৎ পৰিমাণৰ পৰিৱেশন আৰু সুবিধাৰ বাবে সামান্য পৰিমাণৰ স্বচ্ছতাৰ ব্যৱসায় কৰে।

আটাইতকৈ নিৰ্ভৰযোগ্য, সৰ্বোচ্চ-কাৰ্য্যক্ষম ব্যৱস্থাপ্ৰণালী নিৰ্মাণ কৰা ডেভেলপাৰসকল হ'ল যিসকলে এই স্তৰসমূহ বুজি পায় — কাৰণ তেওঁলোকে অহৰহ চিন্তা কৰিবলগীয়া হয়, কিন্তু কাৰণ যেতিয়া কোনো অপ্ৰত্যাশিত কিবা এটা ঘটে (যেনে এটা ৰহস্যময় 72 KB আবণ্টন), তেওঁলোকৰ ওচৰত কিয় বুজিবলৈ মানসিক আৰ্হি থাকে। আপুনি এটা বাস্তৱ-সময়ৰ ট্ৰেডিং চিস্টেম, এটা গেম ইঞ্জিন, বা হাজাৰ হাজাৰ ব্যৱহাৰকাৰীক সেৱা আগবঢ়োৱা এটা ব্যৱসায়িক প্লেটফৰ্ম নিৰ্মাণ কৰক, আপোনাৰ ক'ডে চিস্টেম স্তৰত প্ৰকৃততে কি কৰে সেই বিষয়ে যুক্তি দিয়াৰ ক্ষমতাই দক্ষ ডেভেলপাৰসকলক ব্যতিক্ৰমীসমূহৰ পৰা পৃথক কৰে। ৭২ কেবি বাগ নহয়। ই আপোনাৰ আবণ্টনকাৰীয়ে নিজৰ কাম উজ্জ্বলভাৱে কৰি আছে।

আপোনাৰ ব্যৱসায়িক অপাৰেটিং চিষ্টেম আজিয়েই নিৰ্মাণ কৰক

ফ্ৰীলান্সাৰৰ পৰা এজেন্সীলৈকে, Mewayz এ 207 টা সংহত মডিউলৰ সৈতে 138,000+ ব্যৱসায়ক শক্তি প্ৰদান কৰে। বিনামূলীয়াকৈ আৰম্ভ কৰক, বৃদ্ধি হ'লে উন্নয়ন কৰক।

বিনামূলীয়া একাউণ্ট সৃষ্টি কৰক →

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime