আমি ভয় করি যে আমি এখানে "ভুল কাজটি করছি", যদি তাই হয় তবে আমাকে মুছে ফেলুন এবং আমি ক্ষমা চাইছি। বিশেষত, আমি কিছু লোকেরা যে ঝরঝরে সামান্য মন্তব্যগুলি তৈরি করেছি তা দেখতে আমি ব্যর্থ। তবে এই থ্রেডটি করার জন্য আমার অনেক উদ্বেগ / পর্যবেক্ষণ রয়েছে।
1) জনপ্রিয় উত্তরের একটিতে সিউডো-কোডে মন্তব্য করা উপাদান
result = query( "select smurfs from some_mushroom" );
// twiddle fingers
go_do_something_with_result( result );
মূলত বোগাস। যদি থ্রেডটি কম্পিউটিং করা হয়, তবে এটি থাম্বগুলি কুঁচকানো নয়, এটি প্রয়োজনীয় কাজ করছে। তাহলে, অপরপক্ষে, এটা শুধু আই শেষ হওয়ার জন্য অপেক্ষা করছে, তাহলে এটি হচ্ছে না CPU- র সময় ব্যবহার করে, কার্নেল থ্রেড নিয়ন্ত্রণ অবকাঠামো পুরো পয়েন্ট যে CPU- র কিছু করতে দরকারী খুঁজে পাবেন। এখানে প্রস্তাবিত হিসাবে "আপনার থাম্বগুলিকে টুয়েলড" করার একমাত্র উপায় হ'ল পোলিং লুপ তৈরি করা এবং যে কেউ সত্যিকারের ওয়েবসভারকে কোড করেছে তা করতে যথেষ্ট অযোগ্য।
2) "থ্রেডগুলি শক্ত", কেবল ডেটা ভাগ করে নেওয়ার প্রসঙ্গেই তা উপলব্ধি করে। যদি আপনার কাছে স্বাধীন ওয়েব অনুরোধগুলি পরিচালনা করার ক্ষেত্রে যেমন স্বাধীনভাবে থ্রেড থাকে তবে থ্রেডিং তুচ্ছভাবে সহজ, আপনি কেবল একটি কাজ কীভাবে পরিচালনা করবেন তার রৈখিক প্রবাহকে ঠিকঠাক করে দিয়েছেন এবং এটি একাধিক অনুরোধগুলি পরিচালনা করবে এবং এই বিষয়টি জেনে চমত্কার হয়ে বসে আছেন each কার্যকরভাবে স্বাধীন হবে। ব্যক্তিগতভাবে, আমি উদ্যোগ নেব যে বেশিরভাগ প্রোগ্রামারদের জন্য ক্লোজার / কলব্যাক মেকানিজম শিখতে কেবল উপরে থেকে নীচে থ্রেড সংস্করণটি কোডিংয়ের চেয়ে জটিল। (তবে হ্যাঁ, যদি আপনাকে থ্রেডগুলির মধ্যে যোগাযোগ করতে হয়, জীবন সত্যই দ্রুততর হয়ে ওঠে তবে আমি এই বিষয়ে অনিচ্ছুক না যে বন্ধ / কলব্যাক প্রক্রিয়াটি সত্যিই পরিবর্তিত হয়, এটি কেবল আপনার বিকল্পগুলিকে সীমাবদ্ধ করে, কারণ এই পদ্ধতিটি এখনও থ্রেডগুলির সাথে অর্জনযোগ্য) যাইহোক, যে '
3) এখনও পর্যন্ত, কোনও নির্দিষ্ট প্রসঙ্গের স্যুইচ অন্য যে কোনও ধরণের তুলনায় কম-বেশি সময় সাপেক্ষ হবে কেন সে সম্পর্কে কোনও আসল প্রমাণ উপস্থাপন করেনি। মাল্টি-টাস্কিং কার্নেলগুলি তৈরি করার ক্ষেত্রে আমার অভিজ্ঞতা (এম্বেডড কন্ট্রোলারদের জন্য একটি ছোট স্কেল, "রিয়েল" ওএস হিসাবে তেমন অভিনব কোনও কিছুই) বোঝায় যে এটি হবে না।
৪) অন্যান্য ওয়েবসার্ভারের তুলনায় নোডের চেয়ে কতটা তীব্র তাত্পর্যপূর্ণ তা দেখানোর জন্য আমি পূর্বের সাথে যে সমস্ত চিত্র দেখেছি সেগুলি ভয়াবহভাবে ত্রুটিযুক্ত, তবে এগুলি এমনভাবে ত্রুটিযুক্ত যা অপ্রত্যক্ষভাবে একটি সুবিধা চিত্রিত করে যা আমি অবশ্যই নোডের জন্য গ্রহণ করব (এবং এটি কোনওভাবেই তুচ্ছ নয়)। নোডের টিউনটির প্রয়োজন (এমনকি অনুমতিও দেয় না, এমনকি ਅਸਲে অনুমতিও দেয় না) doesn't আপনার যদি থ্রেডযুক্ত মডেল থাকে, আপনার প্রত্যাশিত লোডটি পরিচালনা করতে পর্যাপ্ত থ্রেড তৈরি করতে হবে। এটি খারাপভাবে করুন, এবং আপনার খারাপ অভিনয় শেষ হবে। যদি খুব কম থ্রেড থাকে, তবে সিপিইউ নিষ্ক্রিয়, তবে আরও অনুরোধগুলি গ্রহণ করতে অক্ষম, প্রচুর থ্রেড তৈরি করতে পারে এবং আপনি কার্নেল মেমরি নষ্ট করবেন এবং জাভা পরিবেশের ক্ষেত্রে, আপনি মূল হিপ মেমরিটিও নষ্ট করবেন । এখন, জাভার জন্য, নষ্ট করা নষ্ট করা প্রথম, সেরা, সিস্টেমের কার্যকারিতা স্ক্রু করার উপায়, কারণ দক্ষ আবর্জনা সংগ্রহ (বর্তমানে, এটি জি 1 এর সাথে পরিবর্তিত হতে পারে, তবে মনে হয় যে জুরিটি এখনও কমপক্ষে 2013 সালের শুরুর দিকে সেই পয়েন্টে বাইরে রয়েছে) প্রচুর অতিরিক্ত গাদা রাখার উপর নির্ভর করে। সুতরাং, সমস্যাটি আছে, এটি খুব কয়েকটি থ্রেডের সাথে টিউন করুন, আপনার অলস সিপিইউ রয়েছে এবং খারাপ থ্রুপুট রয়েছে, এটির সাথে অনেকগুলি টিউন করুন, এবং এটি অন্য উপায়ে ঝাঁকুনিতে পড়ে।
5) আরও একটি উপায় আছে যেখানে আমি দাবিটির যুক্তিটি স্বীকার করি যে নোডের পদ্ধতির "ডিজাইনের মাধ্যমে দ্রুত" এবং এটি এটি। বেশিরভাগ থ্রেড মডেল একটি সময়-কাটা প্রসঙ্গের স্যুইচ মডেল ব্যবহার করেন যা আরও উপযুক্ত (মান বিচারের সতর্কতা :) এবং আরও দক্ষ (কোনও মান রায় নয়) প্রিমিটিভ মডেলের উপরে স্তরযুক্ত। এটি দুটি কারণে হয়, প্রথমত, বেশিরভাগ প্রোগ্রামাররা অগ্রাধিকারের পূর্ববর্তীতা বোঝে না বলে মনে হয় এবং দ্বিতীয়ত, আপনি যদি উইন্ডোজ পরিবেশে থ্রেডিং শিখেন তবে টাইমসাইলিংটি আপনার পছন্দ হয় বা না তা অবশ্যই আছে (অবশ্যই, এটি প্রথম পয়েন্টটিকে শক্তিশালী করে উল্লেখযোগ্যভাবে, জাভার প্রথম সংস্করণগুলি সোলারিস বাস্তবায়নের উপর অগ্রাধিকারের প্রাকिमেশন এবং উইন্ডোজে সময়সূচী ব্যবহার করেছিল Because কারণ বেশিরভাগ প্রোগ্রামার বুঝতে পারেনি এবং অভিযোগ করেছিলেন যে "সোলারিসে থ্রেডিং কাজ করে না" complained তারা সর্বত্র মডেলকে টাইমসাইলে পরিবর্তন করেছে)। যাইহোক, নীচের লাইনটি হ'ল টাইমসাইলিং অতিরিক্ত (এবং সম্ভাব্য অপ্রয়োজনীয়) প্রসঙ্গের সুইচ তৈরি করে। প্রতিটি কনটেক্সট স্যুইচ সিপিইউ সময় নেয়, এবং সেই সময় কার্যকরভাবে কাজ থেকে সরিয়ে ফেলা হয় যা হাতের আসল কাজটিতে করা যেতে পারে। তবে সময়সীমার কারণে কনটেক্সট স্যুইচিংয়ে যে পরিমাণ সময় ব্যয় করা হয়েছে তা সামগ্রিক সময়ের খুব সামান্য শতাংশের বেশি হওয়া উচিত নয়, যদি না অপূর্বর কিছু ঘটে থাকে না, এবং এমন কোনও কারণ ঘটতে পারে বলে আমি আশা করতে পারি না সাধারণ ওয়েবসার্ভার)। সুতরাং, হ্যাঁ, সময়সূচিতে জড়িত অতিরিক্ত প্রসঙ্গের স্যুইচগুলি অদক্ষ (এবং এগুলি এর মধ্যে ঘটে না এবং সেই সময়টি কার্যকরভাবে সেই কাজ থেকে সরিয়ে ফেলা হয় যা হাতে আসল কাজটিতে করা যায়। তবে সময়সীমার কারণে কনটেক্সট স্যুইচিংয়ে যে পরিমাণ সময় ব্যয় করা হয়েছে তা সামগ্রিক সময়ের খুব সামান্য শতাংশের বেশি হওয়া উচিত নয়, যদি না অপূর্বর কিছু ঘটে থাকে না, এবং এমন কোনও কারণ ঘটতে পারে বলে আমি আশা করতে পারি না সাধারণ ওয়েবসার্ভার)। সুতরাং, হ্যাঁ, সময়সূচিতে জড়িত অতিরিক্ত প্রসঙ্গের স্যুইচগুলি অদক্ষ (এবং এগুলি এর মধ্যে ঘটে না এবং সেই সময়টি কার্যকরভাবে সেই কাজ থেকে সরিয়ে ফেলা হয় যা হাতে আসল কাজটিতে করা যায়। তবে সময়সীমার কারণে কনটেক্সট স্যুইচিংয়ে যে পরিমাণ সময় ব্যয় করা হয়েছে তা সামগ্রিক সময়ের খুব সামান্য শতাংশের বেশি হওয়া উচিত নয়, যদি না অপূর্বর কিছু ঘটে থাকে না, এবং এমন কোনও কারণ ঘটতে পারে বলে আমি আশা করতে পারি না সাধারণ ওয়েবসার্ভার)। সুতরাং, হ্যাঁ, সময়সূচিতে জড়িত অতিরিক্ত প্রসঙ্গের স্যুইচগুলি অদক্ষ (এবং এগুলি এর মধ্যে ঘটে নাবিধি হিসাবে বিধি হিসাবে কার্নেল থ্রেড, তবে পার্থক্য হবে থ্রুটপুট কয়েক শতাংশ, পুরোপুরি নোডের জন্য জড়িত কর্মক্ষমতা দাবির মধ্যে পুরো সংখ্যার কারণগুলির অন্তর্ভুক্ত নয় kind
যাইহোক, এগুলি দীর্ঘ এবং র্যাম্পল হওয়ার জন্য ক্ষমাপ্রার্থী, তবে আমি সত্যিই অনুভব করি যে এখনও পর্যন্ত আলোচনার কোনও প্রমাণই পাওয়া যায়নি এবং আমি এই পরিস্থিতিতে যে কোনও একটির কাছ থেকে শুনে সন্তুষ্ট হব:
ক) নোড কেন আরও ভাল হওয়া উচিত তার একটি আসল ব্যাখ্যা (আমি উপরে উল্লিখিত দুটি দৃশ্যের বাইরে, যার মধ্যে প্রথমটি (দুর্বল টিউনিং)) আমি বিশ্বাস করি যে আমি এ পর্যন্ত যতগুলি পরীক্ষা দেখেছি তার আসল ব্যাখ্যা। ], প্রকৃতপক্ষে, আমি এটির সম্পর্কে যত বেশি চিন্তা করি, ততই আমি ভাবছি যে এখানে বিশালাকার স্ট্যাকের দ্বারা ব্যবহৃত স্মৃতিটি উল্লেখযোগ্য হতে পারে modern আধুনিক থ্রেডগুলির জন্য ডিফল্ট স্ট্যাকের আকারগুলি বেশ বিশাল আকার ধারণ করে, তবে মেমরিটি একটি দ্বারা বরাদ্দ করা হয়েছে ক্লোজার-ভিত্তিক ইভেন্ট সিস্টেমটি কেবল যা প্রয়োজন তা হ'ল)
খ) প্রকৃত মানদণ্ড যা পছন্দসই থ্রেডযুক্ত সার্ভারকে প্রকৃত সুযোগ দেয়। কমপক্ষে সেভাবে, আমাকে বিশ্বাস করা বন্ধ করতে হবে যে দাবিগুলি মূলত মিথ্যা;> ([সম্পাদনা] এটি সম্ভবত আমার উদ্দেশ্যটির চেয়ে আরও শক্তিশালী, তবে আমি মনে করি যে পারফরম্যান্স সুবিধার জন্য প্রদত্ত ব্যাখ্যাগুলি অসম্পূর্ণ, এবং দেখানো বেঞ্চমার্কগুলি অযৌক্তিক)।
চিয়ার্স, টবি
select()
থ্রেড প্রসঙ্গের অদলবদলের চেয়ে দ্রুত।