একটি ধীর সংকলন পরিবেশে কোডিংয়ের জন্য সেরা অ্যাপ্রোচ কি


15

আমি সিডি তে টিডিডি স্টাইলে কোডিং করতাম - লিখি / অথবা কোডের একটি ছোট অংশ পরিবর্তন করে, 10 সেকেন্ডে পুরো সমাধানটি পুনরায় সংকলন করি, পরীক্ষাগুলি আবার চালিত করি এবং আবারও। সহজ ...

সেই বিকাশ পদ্ধতিটি কয়েক বছর ধরে আমার জন্য খুব ভালভাবে কাজ করেছিল, গত বছর পর্যন্ত যখন আমাকে সি ++ কোডিংয়ে ফিরে যেতে হয়েছিল এবং এটি সত্যই অনুভব করে যে আমার উত্পাদনশীলতা নাটকীয়ভাবে হ্রাস পেয়েছে since ভাষা হিসাবে সি ++ কোনও সমস্যা নয় - আমার কাছে সি ++ দেব অভিজ্ঞতা অনেক ছিল ... তবে অতীতে

একটি ছোট প্রকল্পের জন্য আমার উত্পাদনশীলতা এখনও ঠিক আছে, তবে প্রকল্পের আকার বৃদ্ধি এবং একবার সংকলনের সময় 10+ মিনিটের সময় হিট হয়ে গেলে এটি খারাপ হয়ে যায় it এবং যদি আমি ত্রুটিটি খুঁজে পাই তবে আমাকে আবার সংকলন শুরু করতে হবে, ইত্যাদি খালি হতাশার is

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

একটি সি # এবং টিডিডি দিয়ে একটি বিবর্তনীয় পদ্ধতিতে কোনও কোড লেখা খুব সহজ ছিল - কয়েকবার পুনরাবৃত্তির পরে আমি যে ধরণের বাজে কথা শুরু করেছি তা ভাল কোডে শেষ হয়েছিল, তবে এটি আর আমার পক্ষে কাজ করে না (ধীর সংকলনে) পরিবেশ)।


stackoverflow.com/questions/5078409/… এগুলি সম্ভবত এক জায়গায় একত্রে / একত্রিত করা উচিত।
বেন এল

Laso দেখুন stackoverflow.com/questions/373142/... সি ++ কম্পাইল বার দ্রুত গাড়ী চালানোর আপ জন্য।
অন্ধকার


সর্বশেষবার যখন আমি সি ++ ব্যবহার করে আন্তরিকভাবে ব্যবহার করেছি তখন প্রাক-সংকলিত শিরোনামগুলি ফ্যাক্টর ফোর দ্বারা সংকলনের সময় কেটে গেছে।
gnasher729

উত্তর:


16

বেশ কিছু জিনিস আমার মনে আসে:

  1. বিতরণ সংকলন ব্যবহার করুন । আপনি এটি জিসিসি ("ডিসটিসি"?) বা ভিসির ( জোরাক্স 'ইনক্রেডি বিল্ডের তুলনায় একেবারেই সস্তা নয়, তবে এটিতে ব্যয় করা প্রতিটি শতাংশের পক্ষে মূল্য দিতে পারেন))।

  2. আপনার প্রকল্পটি গতিশীল লোড লাইব্রেরিতে বিভক্ত করুন এবং সাবধানতার সাথে তাদের উপর নির্ভরতা হ্রাস করার চেষ্টা করুন। ছোট এক্সিকিউটেবলের লিঙ্কটি আরও দ্রুত।

  3. পুরো বড় প্রয়োগের চেয়ে ছোট পরীক্ষা প্রকল্পগুলির বিরুদ্ধে প্রোগ্রাম ।

  4. সংকলন সময়ে অ্যালগরিদম সম্পাদন করতে টেমপ্লেট-মেটা প্রোগ্রামিং নিযুক্ত করুন । হ্যাঁ, এটি প্রকৃতপক্ষে সংকলনের সময়গুলি বাড়িয়ে তুলবে, তবে এটি পরীক্ষার জন্য প্রয়োজনীয় টার্নারওন্ডগুলিও হ্রাস করবে: যদি এটি সূক্ষ্ম সংকলন করে, এটি হয়ে যায়।

  5. হার্ডওয়্যার বিনিয়োগ করুন । আরও সিপিইউ কার্নেলগুলি (আপনার মেশিনে বা অন্যদের মধ্যে) বিতরিত সংকলনটি অবাক করে তুলবে, এবং প্রচুর মেমরির সাথে একটি দ্রুত ডিস্ক (এইচডিডি পরিবর্তে এসএসডি) এতে অনেক সহায়তা করবে। আপনার যদি একটি 64 বিট সিস্টেম এবং অশ্লীল পরিমাণে র‍্যাম থাকে তবে একটি র‌্যাম ডিস্কে সংকলনটি অবিশ্বাস্য গতির উত্সাহ দিতে পারে।


1
সংকলক ক্যাশগুলি আসলে আমার অভিজ্ঞতায় বিতরণ সংকলনের চেয়ে ভাল ধারণা।
pqnet

র‌্যাম ডিস্ক বনাম এসএসডি সম্পর্কে বলতে গিয়ে, আমি বেশ অবাক হয়েছিলাম যে এটি সংকলনের গতিতে এতটা বাড়েনি। আমার বর্তমান প্রকল্প (অ্যান্ড্রয়েডে জাভা) এসএসডি থেকে 45 সেকেন্ডে এবং র্যাম ডিস্ক থেকে 40 সেকেন্ডের মধ্যে ক্লিন স্টেট থেকে সংকলন করে (এবং পুরো সরঞ্জামচেনটি কেবল উত্স নয়, র‌্যাম ডিস্কে রয়েছে)। নাটকীয় বৃদ্ধি নয়, আমি বলব।
হাসপেমুলেটর

10

অন্যদের দ্বারা এখনও উল্লেখ না করা আরও একটি প্রযুক্তিগত সমাধান হ'ল নিয়মিত হার্ড ড্রাইভের পরিবর্তে সলিড স্টেট ড্রাইভে স্যুইচ করা। পূর্ববর্তী একটি প্রকল্পে আমি কাজ করেছি, এসএসডিগুলি 30 মিনিট থেকে 3 এর মধ্যে নির্ধারিত সময়কে কমিয়ে আনে।

অবশ্যই, তারা ব্যয়বহুল। আপনার বসের জন্য, এক সময়ের বিনিয়োগের দামের তুলনায় হারানো বিকাশকারী সময়ের মূল্য নির্ধারণ করুন। বিনিয়োগ সম্ভবত কয়েক মাসের মধ্যে নিজের জন্য অর্থ প্রদান করে।


6
ইহা আকর্ষণীয়. এটি বলছে যে 90% বিল্ড টাইম হ'ল I / O ডিস্কের বিলম্ব।
মাইক ডুনলাভে

আমি 90% হ্রাস দেখিনি, তবে যথেষ্ট পরিমাণে। এটি সংকলনকে গতিময় করে বলে মনে হচ্ছে না তবে এটি অবশ্যই লিঙ্কিংয়ের গতি বাড়িয়েছে। আপনি যদি কোনও বড় প্রকল্পে ছোট পরিবর্তন করে থাকেন (সুতরাং কোনও পরিবর্তনে খুব বেশি সংকলন নেই), এবং সংযোগ দিচ্ছেন, আপনি সম্ভবত এটি পেতে পারেন। (এটি ভিজ্যুয়াল স্টুডিও ২০০৮, সি ++ ব্যবহার করে))
ডেভিড থর্নলি

1
এটা একটা ভালো বুদ্ধি. এছাড়াও, আপনার ফাইল সিস্টেমে র‌্যামের একটি অংশ মাউন্ট করা দ্রুত কাজ করবে এবং এটি সস্তা।
গোরান জোভিক

2
রামডিস্ক আরও দ্রুত (এবং সস্তা)।
এসকে-লজিক

1
@ জন: হ্যাঁ, একটি লিখিত সংকলক (আইএমএইচও) I / O সীমাবদ্ধ হওয়া উচিত।
মাইক ডুনলাভে

3

আরও পরিকল্পনা, বড় অংশগুলিতে কোড, ইউনিট-পরীক্ষার পরিবর্তে ইন্টিগ্রেশন পরীক্ষা লিখুন এবং বিল্ড + টেস্ট স্যুটটি রাতারাতি চালান।


3

দীর্ঘ সংকলনের সময়গুলি কখনও কখনও সমস্যা হয় তবে ইতিমধ্যে উল্লিখিত মডুলারাইজেশন এটি (বেশিরভাগ ক্ষেত্রে) অতিক্রম করতে সহায়তা করতে পারে।

আরও মারাত্মক এমন পরিবেশে আটকা পড়েছে যেখানে আপনি মোটেও সংকলন করতে পারবেন না, যেখানে প্রতিটি কোড পরিবর্তন পরীক্ষা / বিকাশের পরিবেশে প্রয়োগের জন্য অন্য মহাদেশের অন্য বিভাগে জমা দিতে হয়, এমন একটি প্রক্রিয়া সম্পন্ন হতে কয়েক দিন সময় নিতে পারে।

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

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


1
ছেলে, নরক থেকে এমন অবস্থা আমি মেইনফ্রেমের দিনগুলি মনে করি। আমরা প্রচুর কোডের "ডেস্ক চেকিং" করেছি। চাঁদে ফ্লাইটের অন্তহীন সিমুলেশনগুলির মতো সেভাবে কত কাজ হয়েছে তা আশ্চর্যজনক।
মাইক ডুনলাভে

3

আমি সহজেই মনে করতে পারি যখন বিল্ডগুলি দীর্ঘ সময় নিয়েছিল। কিছু প্রশমিত পদ্ধতি:

  • গ্রন্থাগার বা dlls একত্রিত করে সিস্টেম তৈরি করুন। এইভাবে, আপনি যখন কিছু কোড পরিবর্তন করেন, কেবলমাত্র সেই অংশটি যা পুনরায় সংকলনের প্রয়োজন তা হ'ল আপনার অংশ।
  • কোনও বৈশিষ্ট্য বাস্তবায়নের জন্য আপনার কোডটির যে পয়েন্টগুলির সম্পাদনা করতে হবে তা কেবল আপনাকে কতটা সম্পাদনা করতে হবে তা নয়, আপনি যে কম্পাঙ্কটি বাগগুলি রেখেছিলেন তা সংকলন-ডিবাগ-সম্পাদনা-সংকলন লুপকে প্রশস্ত করে। কোডের অতিরিক্ত কাজকে হ্রাসকারী কিছু যেমন ডিআরওয়াই সহায়তা করে।
  • আপনি যদি ডিবাগারে থাকেন এবং ডিবাগারটি ছাড়াই সম্পাদনা করতে, পুনরায় সংকলন করতে এবং চালিয়ে যেতে পারেন, এটি সত্যই সহায়ক।

2

একটি সংকলনের জন্য 10+ মিনিট? সিরিয়াসলি?

আপনি কি কোনও আইডিই ব্যবহার করছেন যা বর্ধিত বিল্ডিং করে (উদাহরণস্বরূপ গ্রহন)? যদি তা না হয় তবে আপনার সম্ভবত হওয়া উচিত, এটি কয়েক মিনিটের চেয়ে কয়েক সেকেন্ডের মধ্যে বেসিক সংকলনটি করবে।

বা আপনি কি ইন্টিগ্রেশন স্টাফ সম্পর্কে কথা বলছেন, যেখানে আপনার পরিবর্তনটি পরীক্ষা করতে আপনাকে পুরো অ্যাপটি তৈরি করতে হবে? যদি তা হয় তবে পুরো বিল্ডটি করার আগে আপনার কোডটি বড় কোডগুলি খুঁজে পেয়েছে কিনা তা নিশ্চিত করতে আরও ছোট পরীক্ষাগুলি দেখুন।


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

2
সম্পূর্ণ বিল্ডের জন্য, কম্পাইল করতে 48 ঘন্টা সময় নিয়েছে এমন সিস্টেমে (বছর আগে) কাজ করতে ব্যবহৃত হয়েছিল। অবশ্যই একটি পূর্ণ বিল্ডিং কেবলমাত্র শুক্রবার সন্ধ্যায় শুরু হয়েছিল, আশা করি আমরা সোমবার অফিসে ফিরে এলে এটি সম্পন্ন হবে। পরিবর্তে আমরা প্রয়োজন অনুযায়ী ছোট মডিউলগুলি তৈরি করেছি (একটি সিঙ্গল ডিএলএল বলুন)।
উঠছে

2
আমি ট্রুডাবকে +1 করতে পারলে উপরের সমস্ত মন্তব্যে -1। হ্যাঁ, আপনি যদি সবকিছু পুনরায় সংশোধন করে থাকেন তবে এটি খুব দীর্ঘ সময় নিতে পারে। যাইহোক, যদি কোনও চিন্তা নির্ভরতা পরিচালনকে দেওয়া হয় তবে 10 ঘন্টা সম্পূর্ণ পুনর্নির্মাণ প্রকল্পগুলির এক মিনিটেরও কম সময়ের মধ্যে ইনক্রিমেন্টাল রিকম্পাইলগুলি আদর্শ হতে পারে। আপনার সমস্ত নিয়োগকর্তাকে আপনার পুনর্নির্মাণের জন্য অপেক্ষা করার সময় নিজেকে নষ্ট করা উচিত, যখন কিছুটা বুদ্ধি প্রয়োগ করা বিপুল পরিমাণ সময় সাশ্রয় করে।
ডঙ্ক

2
এবং আপনি যদি কোনও ছোট্ট দোকানে কাজ করেন যা বেশ কয়েকটি এমএলওসি প্রকল্পে বসতে দেখা যায়, তার মানে এই কোডের যথেষ্ট অংশ পুরানো, এক দশক আগে একাধিক ছোট প্রকল্প হিসাবে শুরু হয়েছিল, যেখানে সংকলনের গতি কখনও সমস্যা ছিল না, এবং নির্ভরতা ব্যবস্থাপনা জঘন্যভাবে খারাপ। তাহলে আপনি কি এই জাতীয় সংস্থাকে এই সমস্ত কিছু ফেলে দেওয়ার এবং এটি পুনরায় লেখার জন্য আরও একটি দশক ব্যয় করতে বলছেন?
sbi

2
@ ডাঙ্ক: এটি একটি ছোট সংস্থা ছিল, একাধিক এমএলওসি প্রকল্পে এক ডজনেরও কম বিকাশকারী কাজ করেছিল। এটা খুব ডেভেলপারদের শত শত এমনটি থেকে আলাদা: আপনি পুনরায় লিখতে পারে না কিছু গোড়া থেকে, কারণ আপনি তা করতে বছর প্রয়োজন চাই। আমি ধারণাটিকে যতটা ঘৃণা করেছি, বিতরণ সংকলনে বিনিয়োগ করা অর্থনৈতিকভাবে সম্ভবপর ছিল, পুনর্লিখন ছিল না। ওহ, এবং আমি সেই ইন্টারফেসগুলি উত্তরাধিকার সূত্রে পেয়েছি। :-xএক দশক আগে আমি সেখানে ছিলাম না, যখন তারা চিন্তাভাবনা করেছিল। (আমি টিএমপি নিযুক্ত করতে, কোডটি সংকলনের আরও ত্রুটিগুলি খুঁজে পেতে এবং ক্ষেত্রে কম খুঁজে পেতে প্রচুর কোডটি পরিবর্তন করেছি))
এসবিআই

2

প্রথমত, কেন প্রথম স্থানে সংকলন করতে এত সময় লাগে?

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

যদি এই সমস্ত কিছু পরে আপনার বিল্ড সময়টি এখনও ধীর হয়, তবে সমস্যাটি ভেঙে দিন: অনেকগুলি ছোট ছোট পরীক্ষার প্রকল্প তৈরি করুন এবং প্রতিটিটিতে স্বতন্ত্রভাবে কাজ করুন। আপনার কাছে একটি অটোমেটেড নাইট বিল্ড সিস্টেম রয়েছে যা তাজা চেকআউট করে, সমস্ত কিছু তৈরি করে এবং সমস্ত ইউনিট পরীক্ষা স্বয়ংক্রিয়ভাবে চালায় তা নিশ্চিত করুন।

অবশেষে, যদি এখনও আপনার পরিবর্তনগুলি পরীক্ষা করতে আপনাকে দীর্ঘ সময় লাগে, তবে সেগুলিতে আরও চিন্তাভাবনা করুন। আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেমে কোনও আলাদা করার বিষয়টি নিশ্চিত করুন এবং পরীক্ষার আগে সমস্ত পরিবর্তন সতর্কতার সাথে পর্যালোচনা করুন। সংক্ষেপে, এটি এম্বেড থাকা সিস্টেমগুলির বিকাশের মতো, যেখানে পরীক্ষার টার্নআরন্ড সময় দীর্ঘ হয় এবং সিস্টেমের অবস্থা পরীক্ষা করার আপনার ক্ষমতা সীমিত।

এটি আমাকে অন্য চিন্তার দিকে নিয়ে যায়: লগিং ব্যবহার করার জন্য আপনার কোডটি ইনস্ট্রুমেন্ট করুন। এইভাবে আপনি এক ডজন বার পুনর্নির্মাণ এবং পুনরায় চালিত না করে সমস্যাটি কী তা দেখতে সক্ষম হতে পারেন।


2
আমি নিশ্চিত নই যে জিসিসি সমান্তরাল সংকলনগুলিকে এতটা সমর্থন করে যে মেক বা অনুরূপ সরঞ্জামগুলি জিসিসির বেশ কয়েকটি অনুলিপি শুরু করবে আপনি যদি তাও জানান তবে।
জাচারি কে

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

1

আপনার সম্ভবত একটি বহু-দীর্ঘায়িত পদ্ধতির প্রয়োজন:

1) দ্রুত বিল্ড সিস্টেম। আপনার সাধ্যের সাথে যতগুলি কোর / রাম / ফাস্ট ডিস্ক। বৃহত্তর সি ++ প্রকল্পের জন্য আপনি দেখতে পাবেন যে ডিস্কটি প্রায়শই সীমাবদ্ধ থাকে, সুতরাং আপনার কাছে দ্রুত গতি রয়েছে তা নিশ্চিত করুন।

2) প্রকল্পটির আরও মডুলারাইজেশন। স্টাফ আপ ব্রেক করুন যাতে পরিবর্তনগুলি সহজেই সমস্ত কিছুর সম্পূর্ণ পুনরায় সংকলন ঘটায় না। স্পষ্টতই, যতটা সম্ভব বেসিক স্টাফগুলি আলাদা dll / so ফাইলগুলিতে চাপুন যাতে প্রকল্পের অংশটি বাকী অংশ থেকে সম্পূর্ণ বিবাহবিচ্ছেদ হতে পারে।

3) বর্ধিত বিল্ড / বিতরণ বিল্ড / আপনার পরিবেশের জন্য উপযুক্ত হিসাবে ক্যাচিং। কিছু সিস্টেমে, ডিসটিসি (বিতরণ বিল্ডিং) এবং সিসিচ (আংশিকভাবে নির্মিত সামগ্রীর ক্যাশে করা) প্রচুর সংকলন সময় সাশ্রয় করতে পারে।

4) আপনার বিল্ডটি ভালভাবে সমান্তরাল হতে পারে তা নিশ্চিত করুন। বিশেষত একটি মেকফিল পরিবেশে, এমন পরিস্থিতিতে যাওয়া শক্ত নয় যেখানে আপনি দুর্ঘটনাক্রমে মেকফিলগুলি সেটআপ করেছেন যাতে আপনি সমান্তরাল বিল্ডিং করতে পারবেন না।


0

ব্যাপক লগিং এবং অভ্যন্তরীণ বৈধতা দীর্ঘ টার্নআরাউন্ড সময়ের জন্য সহায়ক। আপনার বিল্ডটি শেষ হয়ে গেলে, একটি একক রান একবারে সম্ভাব্য সমস্যার একটি বড় সেট প্রকাশ করতে পারে।

বরং জটিল অ্যালগরিদম বা বুককিপিংয়ের সাথে কাজ করার সময়, 'রিয়েল' এর সাথে সমান্তরালে একটি অতি সরলিকৃত সংস্করণ অন্তর্ভুক্ত করা সহায়ক হতে পারে। যে কোনও রানেই আপনার দরকারী তথ্যসূত্র ডেটা অন্তর্ভুক্ত রয়েছে।


0

@ এসবিআই এবং @ মিশেল কোহেন কী বলেছিলেন।

বিল্ড প্রক্রিয়া নিজেই সময় এবং শক্তি ব্যয়। একসময় আমাদের একটি শালীন, পরিপক্ক পণ্য ছিল যা পুরো নির্মাণে এক ঘণ্টারও বেশি সময় নেয়। বিল্ড নির্ভরতা কী বলে দাবি করা হয়েছিল তা ঠিক করতে এবং তারপরে পরে তারা আসলে কী ছিল তা স্থির / হ্রাস করতে অনেক সময় এবং শক্তি ব্যয় করা হয়েছিল। বিল্ড সময় dropped 30 মিনিটে নেমে গেছে।

বিল্ড সরঞ্জাম পরিবর্তন করার ফলে এটি আরও বাদ পড়েছে। বহু অংশের প্রকল্পের জন্য, 'স্ক্যানস' কোনও লিঙ্ক করার আগে সমস্ত সংকলন করতে পারে। প্রকল্পটির লিঙ্কগুলির আগে একাধিক মেকফাইল ব্যবহার করে 'মেক' একটি প্রকল্পের সংকলন করে, তারপরে এগিয়ে যায়।

এটি আমাদের কাছে নিয়ে এসেছিল যে সমস্ত পৃথক সংকলন কমান্ডগুলি ব্যাপকভাবে সমান্তরালভাবে করা যেতে পারে। ধীর মেশিনে 'ডিসপিসি', মাল্টিকোর মেশিনে / স্ক্যান -j8 করুন। এটি পুরো বিল্ডগুলি কয়েক মিনিটের জন্য নিচে নিয়ে আসে।

ভিন্ন আলোতে, একটি অটোমেটেড নাইট বিল্ড প্রক্রিয়া তৈরি করুন। এইভাবে যদি সমস্যাযুক্ত কিছু আপনার উত্স ভান্ডারে প্রতিশ্রুতিবদ্ধ হয়, তবে কর্মস্থলে উপস্থিত, সমস্যাটি সমাধান এবং সমাধান করা প্রথম ব্যক্তি একাধিক লোককে পুনরায় একাধিক ব্যর্থ বিল্ডিং করতে বাধা দিতে পারে।

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