আমি এই দুটি পৃষ্ঠায় যা পড়েছি তা নিয়ে আমি সম্পূর্ণ বিভ্রান্ত।
http://www.scsifaq.org/scsifaq.html#_Hlk410546176 http://www.cse.scu.edu/~tschwarz/coen180/LN/scsi.html
উভয় দাবি করে যে এসসিএসআই অ্যাসিঙ্ক্রোনাস IO সমান্তরাল একের চেয়েও ধীর। কিভাবে? কেন যে কেউ শুধুমাত্র কর্মক্ষমতা আলগা Async পদ্ধতি লিখতে বিরক্ত হবে?
এটা আমার প্রত্যাশা বিপরীত!
বিশেষত যে, এসএসডি ক্ষেত্রে, আমি আরো ভালো কর্মক্ষমতা পেতে অ্যাসিঙ্ক্রোনাসটি পড়তে libaio ব্যবহার করছি।
তদ্ব্যতীত, প্রথম পাঠ্য সমলয় পাঠান প্রেরণ পাঠান পাঠান অপেক্ষা অপেক্ষা করুন ... libaio ক্ষেত্রে এসিঙ্ক্রোনাস ঠিক কি।
যে কেউ আমার জন্য একটি হালকা চালাতে পারেন, দয়া করে ?!
সম্পাদনা করুন 1
আমাকে আমার সমস্যা স্পষ্ট করা যাক। আমি অ্যাসিঙ্ক্রোনাস এবং সিঙ্ক্রোনাস IO মধ্যে একটি পার্থক্য সঠিক বোঝার সঙ্গে একটি সমস্যা হতে পারে।
- সমলয় : এটা প্রতিটি অপারেশন সম্পন্ন করার জন্য অপেক্ষা করে
- অসমনিয়ত : এটা প্রতিটি অপারেশন সম্পন্ন করার জন্য অপেক্ষা করে না
এখন, আমি অনুমান করি যে যদি আমি পড়তে পারি ক্রমানুসারে তথ্য কয়েকটি gigs, একটি সহজ সমলয় লুপ এটি পড়া:
while ( num_blocks-- > 0 )
read_block() ;
প্রশ্নগুলির "অনুরোধ, বিরতি, অনুরোধ" টাইপ থাকবে। বাস্তবিকই আমি দেখি যে যদি আমি এটি মাল্টিথ্রেডেড পদ্ধতিতে পরিবর্তন করি তবে কয়েকটি (6-8) থ্রেড যা 'পরবর্তী অবস্থানটি পড়তে' নিয়ে যাবে এবং তারপরে অনুরোধ করে, আমি প্রায় সর্বোচ্চ পঠন সম্পাদন পেতে পারি।
এটার মতো কিছু:
struct request
{
...
boost::mutex mutex ;
uint64_t block ;
uint64_t get_block_location()
{
boost::mutex::scoped_lock lock( mutex ) ;
return block++ ;
}
} ;
void readth( request* r )
{
try
{
for( ;; )
{
read_block( r->get_block_location()) ;
}
}
catch( const FinishedException& )
{}
}
আমি ভাবলাম, এবং এখন, আমি মনে করি আমি রবার্ট হার্ভির সহায়তায় যা পড়ি তা পুনঃবিবেচনা করার পরেই এটি পেয়ে যাচ্ছি যে ফলাফলের জন্য অপেক্ষা করার সময়ই অ্যাসাইন / সিঙ্ক সত্যিই 'সঞ্চয় সময়' ব্যাপার!
কেউ যদি আমার মত জ্ঞানীয় সমস্যা থাকে তবে আমি এই প্রশ্নটি বাদ দিচ্ছি!