0
پر توجہ دیں
265
پیروکار

آئیے کوڈ کی ساخت کو بہتر بنانے کی اہمیت کے بارے میں بات کرتے ہیں۔

میں تخلیق کیا: 2021-05-22 05:57:14, تازہ کاری:
comments   4
hits   1459

ایک عام کورس کے آغاز کے بعد سے ، کچھ چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی

اس کے علاوہ ، آپ کو یہ بھی معلوم ہونا چاہئے کہ آپ کے پاس جوئے بازی کے اڈوں کے لئے سب سے اہم چیزیں ہیں:

عام طور پر آرڈر لینے کی رفتار کا انحصار تبادلے کے قریب سرورز ، بہتر نیٹ ورک خریدنے اور اس طرح کے مسائل کو حل کرنے پر ہوتا ہے۔ لیکن حقیقت میں ، زیادہ تر نئے آنے والوں کے لئے ، صرف کوڈ ڈھانچے کو بہتر بنانا ، حکمت عملی کو دسیوں ملی سیکنڈ تک تیز کرسکتا ہے ، جو بہتر نیٹ ورک کو تبدیل کرنے سے بالکل کم نہیں ہوتا ہے۔

تاہم ، جب صرف ایک ہی تجارتی جوڑا ہوتا ہے تو ، کوڈ ڈھانچے کو بہتر بنانا اکثر 1ms سے بھی کم ہوتا ہے ، اور اس میں کوئی فرق نہیں پڑتا ہے۔

اور فنڈز کے استعمال میں اضافہ ، اکثر ایک ہی فنڈ کی ضرورت ہوتی ہے ایک ہی وقت میں متعدد ٹرانزیکشن جوڑوں کو دیکھنے کے لئے ، اس وقت منطقی سائیکلوں کی تعداد میں اضافہ ہوتا ہے ، اس وقت کوڈ کی ساخت کو بہتر بنانے کے فوائد واضح ہیں۔ عام طور پر کثیر تبادلے کثیر تجارت کے سروے کی پیچیدگی O ((n) ہے!)*m) ((m) جب تجارت کے جوڑے سینکڑوں تک پہنچ جاتے ہیں اور تبادلے ایک ہی وقت میں درجنوں کا مشاہدہ کرتے ہیں۔

ایک مسئلہ جس کا میں اکثر سامنا کرتا ہوں وہ یہ ہے کہ اگر آپ کو دو ارورٹائزنگ راستے A-C اور A-B-C ملیں تو کیا آپ ان میں سے کسی ایک کا انتخاب کریں گے؟ دونوں راستوں کو دو بار حساب لگانے کی ضرورت ہے ، ایک بار اس منافع کا حساب لگانا ہے جو اس راستے سے ہوسکتا ہے ، فرض کریں کہ p1 اور p2 ، ایک بار اس راستے کا حساب لگانا ہر ایک ایکسچینج اور اس کے ٹرانزیکشن کے لئے قیمت اور رقم کا حساب لگانا ہے۔

سب سے عام تحریر یہ ہے کہ پہلے ایک فنکشن لکھا جائے جس کا کام منافع کا حساب لگانا ہے ، خاص طور پر قیمت اور رقم۔ پھر اس فنکشن کو سائیکل کال کریں ، ہر راستے کا منافع حاصل کریں ، اور پھر منافع کا سب سے بڑا انتخاب کریں۔

واضح طور پر ، ہم صرف منافع کا حساب لگانے کی ضرورت ہے جب ہم موازنہ کرتے ہیں ، اور اس کی ضرورت نہیں ہے کہ ہم پہلے ہی قیمت اور رقم کا حساب لگائیں۔

لہذا ، اصلاح کے وقت ، منافع اور حوالہ جات کو 2 افعال میں تقسیم کیا جاسکتا ہے۔ منافع کو کال کرنے والے افعال کو پہلے سائیکل کریں ، ہر راستے کا منافع حاصل کریں ، اور پھر منافع کو سب سے زیادہ تجارت کرنے کا انتخاب کریں۔ اس طرح ، منطقی طور پر ، منافع کے افعال کو ہر سائیکل سے بلایا جاتا ہے ، صرف ایک بار بلایا جاتا ہے۔ وقت کی پیچیدگی O (((2n) سے O (((n + 1) تک ، n سود کی راہ کی کل تعداد ہے۔

پھر اگر کوڈ کا مزید تجزیہ کیا جائے تو پتہ چلتا ہے کہ عام طور پر ، چونکہ دوسرے سودے بازوں کی موجودگی ہے ، لہذا اگر کسی راستے میں منافع ہوتا ہے تو ، اکثر اس وقت کسی اور کے ذریعہ سودے بازی کی جاتی ہے۔ لہذا یہ بہت مشکل ہے کہ متعدد راستے ایک ہی وقت میں منافع بخش ہوں۔

لہذا ہم اس حکمت عملی کو مزید بہتر بنا سکتے ہیں، ایک لوپ قائم کرتے ہیں، لوپ میں if بیانات، اگر کسی راستے میں منافع پایا جاتا ہے تو، توڑ، اور پھر اس راستے کے حوالہ جات کی تعداد اور قیمت کا حساب لگائیں.

تو پھر پیچیدگی O ((n+1) سے O ((m+1) کے لئے مزید آسان ہے ، m < n ≠ جب تمام تبادلے کے مواقع برابر ہوں تو ، m تقریبا n / 2 کے برابر ہے ، یعنی پیچیدگی O ((n/2+1) میں کم کردی گئی ہے۔

یعنی ، سادہ تقسیم فنکشن کے ذریعہ ، منطقی اصلاحی ڈھانچے کا تجزیہ کرکے ، وقت کی پیچیدگی کو O ((2n) سے O ((n / 2 + 1) تک کم کیا جاسکتا ہے۔

اصل میں کوڈ لکھتے وقت بہت سارے منظرنامے ہیں جن کو بہتر بنایا جاسکتا ہے ، اور میں کوڈ لکھنے کے بعد اکثر لکھتا ہوں ، اور اکثر یہ پتہ چلتا ہے کہ اصلاحی منطق موجود ہے جو کسی O ((n!)*(n+1)) کی امکان۔ کبھی کبھی یہاں تک کہ ایک سو ملی سیکنڈ تک کی منطق کو 1ms کے اندر بہتر بنایا جاسکتا ہے۔

اس کے علاوہ، یہ بھی مشورہ دیا جاتا ہے کہ کوڈ کی ساخت کو بہتر بنایا جائے، کیونکہ اس طرح کی حکمت عملی کے لئے انکوائری کے وقفے کو کم کرنے کے لئے تھوڑا سا وقت دیا جا سکتا ہے.