لینکس کرنل کے لیے memchr فنکشن کا نفاذ تجویز کیا گیا ہے، جو 4 گنا زیادہ تیزی سے چل رہا ہے۔

memchr() فنکشن کے بہترین نفاذ کے ساتھ پیچ کا ایک سیٹ، جو ایک صف میں علامت تلاش کرنے کے لیے استعمال ہوتا ہے، کو لینکس کرنل میں شامل کرنے کی تجویز دی گئی ہے۔ پرانے ورژن کے برعکس، جس میں بائٹ بائی بائٹ موازنہ استعمال کیا جاتا ہے، مجوزہ نفاذ کو 64- اور 32 بٹ CPU رجسٹروں کے مکمل استعمال کو مدنظر رکھتے ہوئے بنایا گیا ہے۔ بائٹس کے بجائے، موازنہ مشینی الفاظ کا استعمال کرتے ہوئے کیا جاتا ہے، جو ایک وقت میں کم از کم 4 بائٹس کا موازنہ کرنے کی اجازت دیتا ہے۔

بڑی تاروں میں تلاش کرتے وقت، نیا آپشن پرانے سے تقریباً 4 گنا تیز نکلا (مثال کے طور پر، 1000 حروف کی تاروں کے لیے)۔ چھوٹے تاروں کے لیے، نئے نفاذ کی کارکردگی اتنی اہم نہیں ہے، لیکن اصل ورژن کے مقابلے اب بھی زیادہ ہے۔ لینکس کرنل میں، memchr() میں پروسیس شدہ تاروں کا سائز 512 بائٹس تک پہنچ جاتا ہے۔ 512 بائٹ سٹرنگز کے لیے کارکردگی میں اضافہ، ایسی صورت حال میں جہاں تلاش کیا گیا کردار سٹرنگ کے آخر میں ہے، 20% ہے۔

5.18-bit اور 32-bit architectures کے لیے نئے "memchr()" آپشن کے ساتھ 64 کرنل کی جانچ کرنے سے کوئی مسئلہ سامنے نہیں آیا۔ "memchr()" کے آپٹمائزڈ ورژن کا استعمال کرتے وقت کرنل سب سسٹمز کی مجموعی کارکردگی کا اندازہ ابھی تک نہیں لگایا گیا ہے، اور نہ ہی عمل درآمد کو تبدیل کرنے کی فزیبلٹی کا تجزیہ کیا گیا ہے (کرنل کوڈ میں، memchr() فنکشن پر کالز 129 بار ہوتی ہیں۔ بشمول ڈرائیورز اور فائل سسٹمز کے کوڈ میں)۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں