লো লেটেন্সি ইউনিক্স / লিনাক্স


11

সর্বাধিক কম বিলম্বিত / উচ্চ ফ্রিকোয়েন্সি প্রোগ্রামিং কাজগুলি (চাকরির চশমার উপর ভিত্তি করে) ইউনিক্স প্ল্যাটফর্মগুলিতে প্রয়োগ করা হয় বলে মনে হয়। প্রচুর চশমাগুলিতে তারা "লো ল্যাটেন্সি লিনাক্স" ধরণের অভিজ্ঞতার জন্য বিশেষ অনুরোধ করে।

ধরে নিলে এটি রিয়েল-টাইম লিনাক্স ওএসের অর্থ নয়, লোকে কী আমাকে এটির সাহায্য দিতে পারে? আমি জানি আপনি থ্রেডগুলিতে সিপিইউ অ্যাফিনিটি সেট করতে পারেন তবে আমি ধরে নিচ্ছি যে তারা এর চেয়ে আরও অনেক কিছু চাইছেন।

কার্নেল টিউনিং? (যদিও আমি শুনেছি সৌরফ্লেয়ারের মতো নির্মাতারা যেভাবেই কার্নেল বাইপাস নেটওয়ার্ক কার্ড তৈরি করতে পারে)?

প্রক্রিয়াগুলির মধ্যে ডিএমএ বা সম্ভবত ভাগ করা মেমরি সম্পর্কে কী? লোকেরা যদি আমাকে সংক্ষিপ্ত ধারণা দিতে পারে তবে আমি গুগলে গবেষণা করতে পারি।

(এই প্রশ্নের সম্ভবত উচ্চ ফ্রিকোয়েন্সি ট্রেডিংয়ের সাথে পরিচিত কারও প্রয়োজন হবে)


2
কার্নেল টিউনিং হ'ল সম্ভব একটি রিয়েল-টাইম ওএসকে যথাসম্ভব রিয়েল-টাইম করার উপায়। থ্রেড পিন করাও বাধ্যতামূলক। : আপনি এই প্রবন্ধে যে সম্বন্ধে আরও পড়তে পারেন coralblocks.com/index.php/2014/04/...
rdalmeida

এছাড়াও সম্পর্কিত: stackoverflow.com/q/15702601/632951
Pacerier

উত্তর:


26

আইবি এবং হেজ ফান্ড সেটিংসে এইচএফটি গ্রুপগুলিকে সমর্থন করার জন্য আমি যথেষ্ট পরিমাণে কাজ করেছি। আমি সিসাদমিন ভিউ থেকে উত্তর দিতে যাচ্ছি, তবে এর কিছু পরিবেশ যেমন পরিবেশে প্রোগ্রামিংয়ের ক্ষেত্রেও প্রযোজ্য।

নিয়োগকর্তারা সাধারণত "লো লেটেন্সি" সমর্থনটি উল্লেখ করার সময় সাধারণত দুটি জিনিস খুঁজছেন। এর মধ্যে কয়েকটি "কাঁচা গতি" প্রশ্ন (আপনি কী জানেন যে কোন ধরণের 10 জি কার্ড কিনতে হবে এবং এটি কী স্লট লাগাতে হবে?) তবে তাদের মধ্যে আরও কয়েকটি হ'ল উচ্চ ফ্রিকোয়েন্সি ট্রেডিং পরিবেশটি একটি traditionalতিহ্যবাহী থেকে পৃথক হওয়ার উপায়গুলি সম্পর্কে ইউনিক্স পরিবেশ। কিছু উদাহরণ:

  • ইউনিক্স ঐতিহ্যগতভাবে সম্পদের জন্য তাদের কোন অনাহারী ছাড়া প্রক্রিয়ার সংখ্যক চলমান সমর্থন করার জন্য টিউন করা হয়, কিন্তু একটি HFT পরিবেশে, আপনি চালাতে চান করার সম্ভাবনা বেশি এক প্রেক্ষাপটে সুইচিং জন্য ওভারহেড একটি পরম সর্বনিম্ন সঙ্গে অ্যাপ্লিকেশন, ইত্যাদি। একটি ক্লাসিক ছোট উদাহরণ হিসাবে, একটি ইন্টেল সিপিইউতে হাইপারথ্রেডিং চালু করা আরও একযোগে আরও প্রসেস চালানোর অনুমতি দেয় - তবে প্রতিটি স্বতন্ত্র প্রক্রিয়াটি যে গতিতে সঞ্চালিত হয় তার উপর একটি কার্যকরী প্রভাব ফেলে impact প্রোগ্রামার হিসাবে, আপনি একইভাবে থ্রেডিং এবং আরপিসির মতো বিমূর্ততার ব্যয় দেখতে হবে এবং এটি নির্ধারণ করতে হবে যেখানে আরও একতরফা সমাধান - যদিও কম পরিষ্কার - ওভারহেড এড়ানো হবে।

  • টিসিপি / আইপি সাধারণত সংযোগ ড্রপগুলি রোধ করতে এবং ব্যান্ডউইথের কার্যকর ব্যবহার উপলভ্য করতে সুর করা হয়। যদি আপনার লক্ষ্যটি খুব দ্রুত লিঙ্কের মধ্যে দিয়ে সর্বনিম্ন বিলম্বকে পাওয়া সম্ভব হয় - আরও সীমাবদ্ধ লিঙ্কের মধ্যে সর্বোচ্চ ব্যান্ডউইদথকে পাওয়ার পরিবর্তে - আপনি নেটওয়ার্ক স্ট্যাকের টিউনিং সামঞ্জস্য করতে চাইছেন। প্রোগ্রামিংয়ের দিক থেকে আপনি একইভাবে উপলভ্য সকেট বিকল্পগুলি দেখতে চাইবেন এবং এটি নির্ধারণ করুন যে কোনটি ব্যাল্টউইথ এবং নির্ভরযোগ্যতার জন্য আরও বেশি ডিফল্ট রয়েছে যাতে ল্যাটেন্সি হ্রাস করার চেয়ে বেশি।

  • নেটওয়ার্কিংয়ের মতো, স্টোরেজ সহ - আপনি কোনও অ্যাপ্লিকেশন সমস্যা থেকে স্টোরেজ পারফরম্যান্সের সমস্যাটি কীভাবে বলতে হয় তা জানতে চান এবং আই / ও ব্যবহারের কোন ধরণের অবস্থানগুলি আপনার প্রোগ্রামের কার্য সম্পাদনে হস্তক্ষেপ করতে পারে তা শিখতে হবে (হিসাবে হিসাবে উদাহরণস্বরূপ, অ্যাসিনক্রোনাস আইও ব্যবহারের জটিলতা কোথায় আপনাকে পরিশোধ করতে পারে এবং ডাউনসাইডগুলি কী কী তা শিখুন) learn

  • অবশেষে, এবং আরো অনেক কিছু বেদনাদায়ক: আমরা ইউনিক্স প্রশাসক হিসাবে চান অনেক পরিবেশের আমরা যতটা সম্ভব নিরীক্ষণ, তাই আমরা জন্য SNMP এজেন্ট, Nagios মত সক্রিয় পর্যবেক্ষণ সরঞ্জাম মত সরঞ্জাম চালানোর মত অবস্থা সংক্রান্ত তথ্য, এবং তথ্য এসএআর (1) মত সরঞ্জাম সংগ্রহ। এমন পরিবেশে যেখানে প্রসঙ্গের স্যুইচগুলি একেবারে কমাতে হবে এবং ডিস্ক এবং নেটওয়ার্ক আইও ব্যবহার করতে হবে কঠোরভাবে নিয়ন্ত্রণ করা, যদিও, আমাদের নজরদারি ব্যয় এবং নজরদারি করা বাক্সগুলির খালি-ধাতব কর্মক্ষমতাের মধ্যে সঠিক ট্রেডঅফ খুঁজে নিতে হবে। একইভাবে, আপনি কী কী কৌশল ব্যবহার করছেন যা কোডিং সহজ করে তবে আপনার জন্য ব্যয় বহন করে?

অবশেষে, এমন আরও কিছু জিনিস রয়েছে যা কেবল সময়ের সাথে আসে; কৌশল এবং বিশদ যা আপনি অভিজ্ঞতার সাথে শিখেন। তবে এগুলি আরও বিশেষায়িত (আমি কখন এপল ব্যবহার করব? তাত্ত্বিকভাবে অভিন্ন পিসিআই নিয়ন্ত্রকদের সাথে এইচপি সার্ভারের দুটি মডেল কেন এত আলাদাভাবে সঞ্চালন করেন?), আপনার নির্দিষ্ট দোকানটি যা ব্যবহার করছে তার সাথে আরও আবদ্ধ এবং এক বছর থেকে অন্য বছরে পরিবর্তিত হওয়ার সম্ভাবনা বেশি ।


1
আপনাকে ধন্যবাদ, যদিও আমি একটি প্রোগ্রামিং উত্তরের বিষয়ে আগ্রহী ছিলাম এটি খুব দরকারী এবং তথ্যবহুল ছিল।
ব্যবহারকারী 997112

5
@ user997112 এটি একটি প্রোগ্রামিং উত্তর। যদি এটি তেমন না মনে হয় তবে এটি পড়া না হওয়া অবধি :)
টিম পোস্ট

15

@ জিমওয়াইজের দুর্দান্ত হার্ডওয়্যার / সেটআপ টিউনিংয়ের উত্তর ছাড়াও, "লো লেটেন্সি লিনাক্স" ইঙ্গিত করছে:

  • সি ++ নির্ধারণের কারণে (জিসি কিক লাগানোর সময় কোনও আশ্চর্য বিলম্ব না করে), নিম্ন-স্তরের সুবিধাগুলিতে অ্যাক্সেস (আই / ও, সিগন্যাল), ভাষা শক্তি (টিএমপি এবং এসটিএল এর সম্পূর্ণ ব্যবহার, টাইপ সুরক্ষা)।
  • গতি-ওভার-মেমরিটিকে পছন্দ করুন:> 512 গিগাবাইট র‌্যাম সাধারণ; ডাটাবেসগুলি হ'ল মেমরি, ক্যাশেড আপ-ফ্রন্ট বা বিদেশী নোএসকিউএল পণ্য।
  • অ্যালগরিদম পছন্দ: যত তাড়াতাড়ি সম্ভব বোধগম্য / বোধগম্য / এক্সটেনসিবল, যেমন লক-ফ্রি, একাধিক বিট অ্যারে-বিন-বৈশিষ্ট্যযুক্ত-অ্যারে-অফ-অবজেক্টস-এর পরিবর্তে একাধিক বিট অ্যারে।
  • ওএস সুবিধাগুলির সম্পূর্ণ ব্যবহার যেমন বিভিন্ন কোরে প্রক্রিয়াগুলির মধ্যে ভাগ করা মেমরি।
  • নিরাপদ. এইচএফটি সফ্টওয়্যারটি সাধারণত স্টক এক্সচেঞ্জে সহ-অবস্থিত তাই ম্যালওয়্যার সম্ভাবনা অগ্রহণযোগ্য।

এর মধ্যে অনেকগুলি কৌশল গেমস বিকাশের সাথে ওভারল্যাপ করেছে যা আর্থিক সফ্টওয়্যার শিল্পটি সম্প্রতি যে কোনও রিডানডেন্ট গেমস প্রোগ্রামারগুলিকে শোষণ করে (কমপক্ষে তাদের ভাড়া বকেয়া পরিশোধ না করা পর্যন্ত) one

অন্তর্নিহিত প্রয়োজনটি হ'ল সুরক্ষার (স্টক, পণ্য, এফএক্স) দামের মতো বাজারের ডেটাগুলির একটি খুব উচ্চ ব্যান্ডউইথ স্ট্রিম শুনতে এবং তারপরে সুরক্ষা, দামের উপর ভিত্তি করে খুব দ্রুত কেনা / বিক্রয় / কিছুই-না-নেওয়া সিদ্ধান্ত নিতে সক্ষম হয় এবং বর্তমান হোল্ডিংস।

অবশ্যই, এগুলিও দর্শনীয়ভাবে ভুল হতে পারে।


সুতরাং আমি বিট অ্যারে পয়েন্টটি বিস্তারিতভাবে করব । ধরা যাক আমাদের একটি উচ্চ ফ্রিকোয়েন্সি ট্রেডিং সিস্টেম রয়েছে যা অর্ডারের দীর্ঘ তালিকায় কাজ করে (5 কে আইবিএম কিনুন, 10 কে ডিল বিক্রয় করুন) ইত্যাদি। আসুন বলি যে আমাদের সমস্ত আদেশ পূরণ হয়েছে কিনা তাড়াতাড়ি নির্ধারণ করা দরকার, যাতে আমরা পরবর্তী কাজটিতে যেতে পারি। Traditionalতিহ্যবাহী ওও প্রোগ্রামিংয়ে, এটি দেখতে দেখতে যাচ্ছে:

class Order {
  bool _isFilled;
  ...
public:
  inline bool isFilled() const { return _isFilled; }
};

std::vector<Order> orders;
bool needToFillMore = std::any_of(orders.begin(), orders.end(), 
  [](const Order & o) { return !o.isFilled(); } );

এটি একটি রৈখিক স্ক্যান হওয়ায় এই কোডটির অ্যালগোরিদমিক জটিলতা ও (এন) হতে চলেছে। আসুন মেমরি অ্যাক্সেসের ক্ষেত্রে পারফরম্যান্সের প্রোফাইলটি একবার দেখে নিই: স্ট্যান্ডের অভ্যন্তরে লুপের প্রতিটি পুনরাবৃত্তি :: যেকোন_ফ () ও.আইএসফিলড () ইনলাইনড থাকে, তাই মেমরি অ্যাক্সেসে পরিণত হয়, 1 বাইট (অথবা 4 আপনার আর্কিটেকচার, সংকলক এবং সংকলক সেটিংসের উপর নির্ভরশীল) এর 128 বাইট মোট বলুন object সুতরাং আমরা প্রতি 128 বাইটে 1 বাইট অ্যাক্সেস করছি। যখন আমরা 1 বাইট পড়ি, নিকৃষ্টতম অবস্থা অনুমান করে, আমরা একটি সিপিইউ ডেটা ক্যাশে মিস করব। এটি কেবলমাত্র 8 টি বিট পড়ার জন্য র‌্যামের কাছে একটি রিড অনুরোধ সৃষ্টি করবে যা র‌্যাম থেকে একটি সম্পূর্ণ লাইন পড়ে ( আরও তথ্যের জন্য এখানে দেখুন )। সুতরাং মেমরি অ্যাক্সেস প্রোফাইলটি এন এর সমানুপাতিক is

এর সাথে তুলনা করুন:

const size_t ELEMS = MAX_ORDERS / sizeof (int);
unsigned int ordersFilled[ELEMS];

bool needToFillMore = std::any_of(ordersFilled, &ordersFilled[ELEMS+1],
   [](int packedFilledOrders) { return !(packedOrders == 0xFFFFFFFF); }

এর মেমরি অ্যাক্সেস প্রোফাইল, আবার খারাপ পরিস্থিতি ধরে ধরে, ELEMS কে একটি র‌্যাম লাইনের প্রস্থ দ্বারা বিভক্ত করা হয় (পরিবর্তিত হয় - ডুয়াল-চ্যানেল বা ট্রিপল-চ্যানেল ইত্যাদি হতে পারে)।

সুতরাং, বাস্তবে, আমরা মেমরি অ্যাক্সেস নিদর্শনগুলির জন্য অ্যালগরিদমগুলি অনুকূল করে তুলছি। কোনও পরিমাণ র‍্যাম সহায়তা করবে না - এটি সিপিইউ ডেটা ক্যাশে আকার যা এই প্রয়োজনের কারণ করে।

এটা কি সাহায্য করে?


ইউটিউবে লো-লেটেন্সি প্রোগ্রামিং (এইচএফটির জন্য) সম্পর্কে একটি দুর্দান্ত সিপিপিকন রয়েছে: https://www.youtube.com/watch?v=NH1Tta7purM


"একাধিক বিট অ্যারে-অফ-অবজেক্টস-বিউল-প্রোপার্টি-এর পরিবর্তে" আপনি এর অর্থ কী?
ব্যবহারকারী 997112

1
আমি উদাহরণ এবং লিঙ্কগুলি দিয়ে বিস্তারিত বর্ণনা করেছি।
জেবিআরউইলকিনসন

কোনও অর্ডার পূরণ হয়েছে কিনা তা বোঝাতে পুরো বাইট ব্যবহার না করে - আরও এক ধাপ এগিয়ে যাওয়া, আপনি কেবলমাত্র একটি বিট ব্যবহার করতে পারেন। সুতরাং একটি একক ক্যাচলিনে (by৪ বাইট) - আপনি ২৫6 টি অর্ডারের রাজ্যের প্রতিনিধিত্ব করতে পারেন। সুতরাং - কম মিস।
কুইসভার

এছাড়াও - আপনি যদি মেমরির রৈখিক স্ক্যানগুলি করেন - তবে হার্ডওয়ার প্রিফেটর আপনার ডেটা লোড করার একটি দুর্দান্ত কাজ করে। আপনি মেমোরিটিকে ক্রমান্বয়ে বা স্ট্রাইডিং বা সাধারণ কিছু অ্যাক্সেস দিয়েছিলেন। তবে আপনি যদি কোনও ধরণের অ-অনুক্রমিক পদ্ধতিতে মেমরি অ্যাক্সেস করে থাকেন - সিপিইউ উপস্থাপক বিভ্রান্ত হন। যেমন একটি বাইনারি অনুসন্ধান। এই মুহুর্তে প্রোগ্রামার সিপিইউতে ইঙ্গিতগুলির সাহায্য করতে পারে - _ মিমি_প্রিফেট্চ।
কুইসভার

-2

যেহেতু আমি উত্পাদনে একটি বা দুটি উচ্চ ফ্রিকোয়েন্সি সফ্টওয়্যার না রেখেছি আমি সর্বাধিক গুরুত্বপূর্ণ বিষয়গুলি বলব:

  1. নেটওয়ার্কিং ইঞ্জিনিয়ারদের সাথে হার্ডওয়্যার কনফিগারেশন এবং সিস্টেম অ্যাডমিনিস্ট্রেটররা ট্রেডিং সিস্টেম দ্বারা প্রক্রিয়াজাত অর্ডারের ভাল ফলাফলের সংজ্ঞা দেয় না, তবে তারা উপরে বর্ণিত বেসিকগুলি না জানলে তারা এটি বড় সময়ে ডাউনগ্রেড করতে পারে।
  2. একমাত্র ব্যক্তি যিনি বাস্তবে উচ্চ ফ্রিকোয়েন্সি ট্রেডিং করতে সিস্টেম তৈরি করেন এমন একজন কম্পিউটার বিজ্ঞানী যিনি কোডটি সি ++ এ একসাথে রেখেছেন

    জ্ঞান ব্যবহৃত হয়

    উ: তুলনা করুন এবং অদলবদল পরিচালনা করুন।

    • প্রসেসরে সিএএস কীভাবে ব্যবহৃত হয় এবং কম্পিউটার এটি তথাকথিত নো-লকিং স্ট্রাকচার প্রসেসিংয়ে ব্যবহার করার জন্য কীভাবে সমর্থন করে। বা লক-ফ্রি প্রক্রিয়াকরণ। আমি এখানে পুরো বই লিখতে যাব না। সংক্ষেপে জিএনইউ সংকলক এবং মাইক্রোসফ্ট সংকলক সিএএস নির্দেশাবলী সরাসরি ব্যবহার সমর্থন করে। এটি আপনার কোডকে "নং ওয়েয়ার" রাখার সময় সারি থেকে উপাদান বের করার সময় বা একটি নতুন সারিটিতে রাখার অনুমতি দেয়।
  3. গুণী বিজ্ঞানী আরও ব্যবহার করবেন। তাঁর জাভাতে প্রথম প্রকাশিত সাম্প্রতিক নতুন "নিদর্শনগুলি" সন্ধান করা উচিত। DISRUPTOR প্যাটার্ন বলা হয়। ইউরোপের এলএমএএক্স এক্সচেঞ্জে ভাঁজ উচ্চ ফ্রিকোয়েন্সি সম্প্রদায়ের কাছে ব্যাখ্যা করেছে যে আধুনিক প্রসেসরগুলিতে থ্রেড-ভিত্তিক ব্যবহার সিপিইউ দ্বারা মেমরি ক্যাশে রিলিজের সময় প্রসেসিংয়ের সময়টি looseিলে করে দিবে যদি আধুনিক সিপিইউ ক্যাশে = 64 এর আকারের সাথে ডায়া কাতাকে সংযুক্ত না করা হয় modern

    সুতরাং সেই পাঠের জন্য তারা একটি জাভা কোড সর্বজনীন করেছে যা বহু-থ্রেডিং প্রক্রিয়াটিকে বিরোধী সমাধানগুলি ছাড়াই হার্ডওয়্যার সিপিইউ ক্যাশে সঠিকভাবে ব্যবহার করতে দেয়। এবং ইতিমধ্যে ভাল কম্পিউটার বিজ্ঞানী যে প্যাটার্নটি ইতিমধ্যে সি ++ এ পোর্ট করা হয়েছে বা নিজের পোর্টিং করছেন তা খুঁজে পেতে পারেন।

    এটি কোনও অ্যাডমিন কনফিগারেশনের বাইরে দক্ষতার উপায়। এটি আজ উচ্চ ফ্রিকোয়েন্সিটির সত্যিকারের অন্তরে।

  4. কম্পিউটার বিজ্ঞানের লোকটি কেবল কিউএর লোকদের সহায়তা করতে নয় প্রচুর সি ++ কোড লিখতে পারে। কিন্তু
    • ব্যবসায়ীদের বৈধতা প্রমাণিত গতি সম্মুখীন
    • বিভিন্ন পুরানো প্রযুক্তি ব্যবহারের নিন্দা করুন এবং তারা ভাল ফলাফল দিতে ব্যর্থ হয়েছে তা দেখানোর জন্য তার নিজস্ব কোড দিয়ে তাদের প্রকাশ করুন
    • প্রমাণিত পুপের ভিত্তিতে হোস্টের নিজস্ব মাল্টি-থ্রেডিং যোগাযোগ সি ++ কোড লিখুন / আবার পুরানো প্রযুক্তি ব্যবহারের পরিবর্তে কার্নেলের গতি নির্বাচন করুন। আমি আপনার উদাহরণ দেব - আধুনিক টিসিপি লাইব্রেরি আইসিই হয়। লোকেরা যারা এটি করেছে তারা উজ্জ্বল। তবে তাদের অগ্রাধিকারগুলি ছিল বহু ভাষার সাথে সংযোগের ক্ষেত্রে। So. আপনি সি ++ এ আরও ভাল করতে পারেন। সুতরাং ASYNCHRONOUS নির্বাচন কলের উপর ভিত্তি করে সর্বাধিক পারফরম্যান্স এক্সপেলগুলি অনুসন্ধান করুন। এবং একাধিক উত্পাদক একাধিক উত্পাদকের জন্য যাবেন না - এইচএফের জন্য নয়।
      এবং আপনি অবাক হয়ে যাবেন যে আগত বার্তার কার্নেল বিজ্ঞপ্তির জন্য পাইপটি কেবলমাত্র ব্যবহৃত হয়। আপনি সেখানে -৪-বিট বার্তা নম্বর রাখতে পারেন - তবে সামগ্রীর জন্য আপনি কোনও লকিং সিএএস কাতারে যান। অ্যাসিনক্রোনাস কার্নেল select()কল দ্বারা ট্রিগার করা ।
    • পরন্তু। আপনার বার্তাগুলি পাইপিং / সারি করার জন্য আপনার থ্রেডে সি ++ থ্রেডের সখ্যতা স্থাপনের বিষয়ে জানুন। এই থ্রেডের মূল সখ্যতা থাকা উচিত। অন্য কারোরই একই সিপিইউ কোর নম্বর ব্যবহার করা উচিত নয়।
    • ইত্যাদি।

আপনি দেখতে পাচ্ছেন - উচ্চ ফ্রিকোয়েন্সি হ'ল ডেভেলপিং ফিল্ড। সফল হওয়ার জন্য আপনি কেবল সি ++ প্রোগ্রামার হতে পারবেন না।

এবং আমি যখন সাফল্য পেতে বলি তখন আমি বোঝাতে চাইছি আপনি যে হেজ তহবিলের জন্য কাজ করবেন ডাব্লুআইএলএল তার জন্য কথা বলার সংখ্যা ছাড়িয়ে বাৎসরিক ক্ষতিপূরণে ট্যুর প্রচেষ্টা স্বীকৃতি দেবে।

সাধারণ কনস্ট্রাক্টর / ডেস্ট্রাক্টর এফএকিউ এর সময়গুলি চিরতরে চলে যায়… এবং সি ++… নিজেই নতুন সংকলকগুলির সাথে মাইগ্রেশন করে আপনাকে স্মৃতি পরিচালনা থেকে মুক্তি দিতে এবং ক্লাসে বড় গভীরতার কোন উত্তরাধিকার প্রয়োগ করতে। সময়ের অপচয়। কোড পুনরায় ব্যবহারের দৃষ্টান্ত পরিবর্তন হয়েছে। পলিমর্পে আপনি কতগুলি ক্লাস করেছেন তা কেবল তা নয়। আপনি পুনরায় ব্যবহার করতে পারেন এমন কোডটির প্রত্যক্ষভাবে নিশ্চিত সময়ের পারফরম্যান্স।

সুতরাং আপনার পছন্দটি সেখানে বক্ররেখা শেখার মধ্যে যাওয়া বা না করা। এটি কখনও থামার চিহ্নকে আঘাত করবে না।


6
আপনি বানান এবং ফর্ম্যাটিংয়ে কিছু প্রচেষ্টা রাখতে চাইতে পারেন। বর্তমান আকারে, এই পোস্টটি সবেমাত্র বোধগম্য।
কোডসইনচাউস

1
আপনি 10 বছর আগের পরিস্থিতি বর্ণনা করেন। হার্ডওয়্যার ভিত্তিক সমাধানগুলি আজকাল সহজেই খাঁটি সি ++ কে ছাড়িয়ে যায়, আপনার সি ++ যতই অনুকূলিত হয় না।
সুজেয়ার্ড

যারা হার্ডওয়্যার ভিত্তিক সমাধানগুলি কী তা জানতে চান - এটি বেশিরভাগই এফপিজিএ সমাধান যেখানে কোডটি আসলে দ্রুত মেমোরিতে পোড়া হয় এবং তথাকথিত আরওএম মেমরির পুনরুদ্ধার করে পরিবর্তন করা হয় না। কেবলমাত্র পড়ুন
অ্যালেক্স p

@ আলেপ এক্সপ্রেস আপনি কী বলছেন তা আপনি পরিষ্কারভাবে জানেন না। "দ্রুত স্মৃতিতে পোড়ানো কোড" এর চেয়ে এফপিজিএ কিছু আলাদা।
সুজোরড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.