ভিজ্যুয়াল স্টুডিও 2005 এ খুব ধীর সংকলিত বার


132

আমরা খুব ধীর সংকলনের সময় পাচ্ছি, যা ডুয়াল কোর 2GHz, 2G রাম মেশিনে 20+ মিনিটের বেশি সময় নিতে পারে।

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

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

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

আপডেট আমি এই একটি সি # সমাধান অবহেলিত উল্লেখ করেনি। সমস্ত সি ++ পরামর্শের জন্য ধন্যবাদ, তবে শিরোনাম সম্পর্কে আমাকে চিন্তিত হতে কয়েক বছর হয়েছে।

সম্পাদনা করুন:

ভাল পরামর্শ যা এখন পর্যন্ত সাহায্য করেছে (নীচে অন্যান্য দুর্দান্ত পরামর্শ নেই বলছেন না, ঠিক যা সাহায্য করেছে)

  • নতুন 3 জিএইচজেড ল্যাপটপ - পরিচালনায় হোয়াইট করার সময় হারিয়ে যাওয়া ব্যবহারের শক্তি বিস্ময়ের কাজ করে
  • সংকলনের সময় অ্যান্টি ভাইরাস অক্ষম করুন
  • সংকলনের সময় ভিএসএস (প্রকৃতপক্ষে নেটওয়ার্ক) থেকে 'সংযোগ বিচ্ছিন্ন' - আমি আমাদের পুরোপুরি ভিএস-ভিএসএস ইন্টিগ্রেশন সরিয়ে নিতে এবং ভিএসএস ইউআই ব্যবহার করতে আটকে থাকতে পারি

এখনও একটি সংকলনের মাধ্যমে ছিঁড়ে-ছিটিয়ে পড়া নয়, তবে প্রতিটি বিট সাহায্য করে।

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

কার্যসংক্রান্ত

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

আমরা এগুলি অস্থায়ী সমাধান তৈরি করে যা আমাদের কাজ করতে হবে সেই জায়গাগুলি সজ্জিত করে এবং কোডটি পুনরায় সংহত করার পরে এগুলি ফেলে দিয়ে existing উন্নয়নের সময় দ্রুত পুনরায় সংঘর্ষের অভিজ্ঞতা যেমন রিপ ভ্যান উইঙ্কল না পেয়ে আমরা যে সময়টি অর্জন করি তার বিপরীতে এই কোডটি পুনরায় সংহত করতে যে সময় লাগবে আমাদের তা ওজন করা উচিত।


বাহ আমি ভেবেছিলাম 20 সেকেন্ডের সংকলনের সময়গুলি চূড়ান্তভাবে দীর্ঘ।
জ্যারেড আপডেটিকে

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

আপনি ভিজ্যুয়াল-স্টুডিওর বাইরে ভিএসএস ব্যবহার করতে পারেন যাতে আপনি ভিসুএস-এর সাথে কথা বলার ভিজ্যুয়াল-স্টুডিওর ওভারহেড পান না।
ইয়ান রিংরোজ

কীভাবে সম্পদ? আমি কল্পনা করতে পারি তারা প্রক্রিয়াটি ধীর করে দেয়। আমি এক্সি ফাইলের সাথে বাণিজ্যিক সফ্টওয়্যার দেখেছি যে সিডি থেকে আপনি যে সিডি শুরু করেন (সেটআপ নয়)। তারা ভিডিও, অডিও এবং ছবি পূর্ণ ছিল। সুতরাং সফ্টওয়্যারটি কেবল এই একটি ফাইল ছিল ....
বিটারব্লু

উত্তর:


74

ক্রোমিয়াম.আর.গো. দলটি বিল্ডটিকে ত্বরান্বিত করার জন্য বেশ কয়েকটি বিকল্প তালিকাভুক্ত করেছে (পৃষ্ঠার অর্ধ-পথের প্রায় এই মুহুর্তে):

দ্রুতগতির ক্রম হ্রাসে:

  • মাইক্রোসফ্ট হটফিক্স 935225 ইনস্টল করুন ।
  • মাইক্রোসফ্ট হটফিক্স 947315 ইনস্টল করুন ।
  • সত্যিকারের মাল্টিকোর প্রসেসর ব্যবহার করুন (যেমন, একটি ইন্টেল কোর ডুও 2; পেন্টিয়াম 4 এইচটি নয়)।
  • 3 সমান্তরাল বিল্ড ব্যবহার করুন। ভিজ্যুয়াল স্টুডিও ২০০৫-এ, আপনি সরঞ্জামসমূহ> বিকল্পসমূহ ...> প্রকল্পগুলি এবং সমাধানগুলি> বিল্ড এন্ড রান> সর্বাধিক সংখ্যক সমান্তরাল প্রকল্পের বিল্ডে বিকল্পটি পাবেন ।
  • .Ilk, .pdb, .cc, .h ফাইলগুলির জন্য আপনার অ্যান্টি-ভাইরাস সফ্টওয়্যারটি অক্ষম করুন এবং কেবলমাত্র সংশোধন করে ভাইরাসগুলি পরীক্ষা করুন । আপনার উত্স যেখানে থাকে সেই ডিরেক্টরি স্ক্যান করা অক্ষম করুন। বোকা কিছু করবেন না।
  • দ্বিতীয় হার্ড ড্রাইভে ক্রোমিয়াম কোড সঞ্চয় করুন এবং তৈরি করুন। এটি প্রকৃতপক্ষে বিল্ডটিকে গতি দেয় না তবে আপনি যখন সিসিলেট সিঙ্ক বা বিল্ড করেন তখন কমপক্ষে আপনার কম্পিউটারটি প্রতিক্রিয়াশীল থাকবে।
  • আপনার হার্ড ড্রাইভকে নিয়মিত ডিফল্ট করুন।
  • ভার্চুয়াল মেমরি অক্ষম করুন।

30
ভার্চুয়াল মেমরি অক্ষম করে আমি ধরে নিয়েছি আপনার অর্থ স্বাপ অক্ষম করুন, ভার্চুয়াল মেমরি অক্ষম করার জন্য পুরো ওএসের পুনর্লিখনের প্রয়োজন হবে; পি
জোসেফ গারভিন

9
এই উত্তরটির মতো দেখতে সি ++ বিল্ডস সি # বিল্ডস নয়
ইয়ান রিংরোজ

2
তুমি ঠিক বলছো! যদিও আমার উল্লেখ করা উচিত যে তিনি সি # নির্দিষ্ট করার আগেই আমি জবাব দিয়েছি, এবং কয়েকটি স্থির স্থির প্রয়োগ এখনও রয়েছে।
নেট

* একটি এসএসডি ড্রাইভে প্রকল্পের সঞ্চয় করুন * অক্ষম উইন্ডোজ ইন্ডেক্স (, একটি ফাইল ম্যানেজার, ডান ক্লিক সমাধান ফোল্ডার বৈশিষ্ট্যাবলী> উন্নত মধ্যে টিক মুক্ত করুন "অনুমতি দিন ফাইল ... ইন্ডেক্স ...")
টি

+1 আপনার পর্যাপ্ত র‍্যাম থাকলে এগুলি র‌্যাম ডিস্কে রেখে দিন। এটি নাটকীয়ভাবে 50-70% অবধি পারফরম্যান্স উন্নত করতে পারে। পরীক্ষা codeproject.com/Articles/197663/Speed-up-Visual-Studio-Builds আরও তথ্যের জন্য
অর্জুন Vachhani

58

আমাদের একটি সমাধানে প্রায় 100 টি প্রকল্প রয়েছে এবং কেবলমাত্র কয়েক সেকেন্ডের একটি ডেভ বিল্ড সময় :)

স্থানীয় উন্নয়ন বিল্ডগুলির জন্য আমরা একটি ভিজ্যুয়াল স্টুডিও অ্যাডিন তৈরি করেছি যা অযাচিত প্রকল্পগুলিতে পরিবর্তন Project referencesকরে DLL referencesএবং আনলোড করে (এবং অবশ্যই তাদের আবার স্যুইচ করার একটি বিকল্প)।

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

আমাদের বিল্ডগুলি কেবলমাত্র কয়েক সেকেন্ড সময় নেয় যখন আমরা একবারে কয়েকটি প্রকল্পে কাজ করি। ডিবাগ ডিএলএল-এর সাথে যুক্ত হওয়ায় আমরা অতিরিক্ত প্রকল্পগুলিও ডিবাগ করতে পারি। সরঞ্জামটি সাধারণত বিশাল সংখ্যক পরিবর্তন করতে 10-30 সেকেন্ড সময় নেয় তবে আপনাকে প্রায়শই এটি করতে হবে না।

আপডেট মে 2015

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


2
180 টি প্রকল্পের সমাধান সহ এই কৌশলটিও ব্যবহার করা হয়েছে। এটি অনেক সাহায্য করেছিল। এমনকি পুরো সমাধানটি তৈরি করার জন্য আপনি কমান্ড লাইনটি ব্যবহার করতে পারেন - ডিভেনভ.এক্সে / বিল্ড থাইওলিউশন / টেকলোকাথেডোস ... যাতে আপনি কেবল কয়েকটি প্রকল্পের সাথে কাজ করেন এবং যখন প্রয়োজন হয়, আপনি সম্পূর্ণ সমাধানটি একটি সেমিডি লাইনে পুনরায় কম্পাইল করেন (একটি পরে উদাহরণের জন্য সর্বশেষ সংস্করণটি পান)
স্টিভ বি

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

@ ড্যানিয়েল ডাইসন: আপনার কতটা বিশদ জানা দরকার? এটি সব কিছু নেমে আসে) আনলোড হওয়া প্রকল্পগুলি লোড করা 2) সমাধান / প্রকল্প / রেফারেন্স শ্রেণিবিন্যাস পুনরুক্তি করা 3) অন্যান্য প্রকল্পের রেফারেন্স সহ প্রকল্পগুলি সন্ধান 4) ডিএলএল রেফারেন্সের "নির্বাচিত" রেফারেন্স পরিবর্তন করে (সঠিক ইঙ্গিতের পথ সহ) 5) অযাচিত প্রকল্পগুলি আনলোড করা হচ্ছে। "চয়ন করা" হয় সামগ্রী মেনু (যেমন নির্বাচিত প্রকল্পগুলি) এর মাধ্যমে বা আইটেমগুলি নির্বাচন করতে একটি চেকবক্স ট্রি দ্বারা।
কোডিং হয়ে গেছে

ধন্যবাদ। এটি আমাকে শুরু করার জন্য পর্যাপ্ত হওয়া উচিত।
ড্যানিয়েল ডায়সন

1
@ হাইটেকম্যাগিক আহ, শুনে শুনে দুঃখিত। তবে হ্যাঁ, এটিকে ওপেন সোর্স হিসাবে প্রকাশ করার অর্থ আমরা সবাই সাহায্য করতে পারি। আপনি যদি এটি প্রকাশ করেন তবে দয়া করে এখানে গিথব লিঙ্কটি পোস্ট করুন।
জর্জিওজড

24

আমার 21 টি প্রকল্প এবং 1/2 মিলিয়ন এলওসি সহ একটি সমাধানে একইরকম সমস্যা ছিল। সবচেয়ে বড় পার্থক্যটি ছিল দ্রুত হার্ড ড্রাইভ পাওয়া। পারফরম্যান্স থেকে 'গড় গড় পর্যবেক্ষণ করুন। ডিস্ক ক্যু 'হার্ড ড্রাইভের বোতল ঘাড় নির্দেশ করে ল্যাপটপে উল্লেখযোগ্যভাবে লাফিয়ে উঠবে।

মোট পুনর্নির্মাণ সময়ের জন্য এখানে কিছু ডেটা ...

1) ল্যাপটপ, কোর 2 ডুয়ো 2GHz, 5400 আরপিএম ড্রাইভ (ক্যাশে সম্পর্কে নিশ্চিত নয় Was স্ট্যান্ডার্ড ডেল ইনস্পিরন ছিল)।

পুনর্নির্মাণ সময় = 112 সেকেন্ড।

2) ডেস্কটপ (স্ট্যান্ডার্ড ইস্যু), কোর 2 ডুও 2.3 গিগাহার্টজ, একক 7200 আরপিএম ড্রাইভ 8 এমবি ক্যাশে।

পুনর্নির্মাণ সময় = 72 সেকেন্ড।

3) ডেস্কটপ কোর 2 ডুও 3 জি এইচজেড, একক 10000 আরপিএম ডাব্লুডি রেপ্টর

পুনর্নির্মাণ সময় = 39 সেকেন্ড।

10,000 আরপিএম ড্রাইভকে ছোট করা যাবে না। তৈরি করে যেখানে উল্লেখযোগ্যভাবে দ্রুততর প্লাস ডকুমেন্টেশন প্রদর্শন, ফাইল এক্সপ্লোরার ব্যবহারের মতো আরও দ্রুত চিহ্নিতযোগ্য। কোড-বিল্ড-রান চক্রকে গতিবদ্ধ করে এটি একটি বৃহত উত্পাদনশীলতা বৃদ্ধি করেছিল।

সংস্থাগুলি বিকাশকারীদের বেতনগুলিতে কী ব্যয় করে তা দেওয়া হয় যে তারা যে পরিমাণ পিসি রিসেপশনিস্ট ব্যবহার করে তাদের একই সজ্জায় কেনা অপচয় করতে পারে তা পাগল


4
কীভাবে কোনও এসএসডি রাপ্টারের সাথে তুলনা করবে। আরও দ্রুত আমি
অনুমান

4
হা. ইন্টেল এক্স 25 এম এর সাথে আমার ল্যাপটপটি ডাব্লুডি র‌্যাপ্টরের সাথে আমার ডেস্কটপের চেয়ে সব দিক থেকে দ্রুত।
সিএডি

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

2
@ কর্নেলিয়াস: আমি কি এমন একটি লিঙ্ক পেতে পারি যা আপনার পয়েন্টটি বিস্তারিতভাবে বর্ণনা করবে? 7200 এর দশকের ব্যাসার্ধের ঝলক যদি 7200 এর দশকের ব্যাসার্ধের চেয়ে খুব দ্রুততর হতে পারে তবে 7200 এর বাইরের রিমটি কেবলমাত্র একমাত্র উপায় হতে পারে, তবে সত্যিকার অর্থে এই কৌশলটি হ্যাকের মতো হবে এবং উপকার সরবরাহ করবে না 00২০০ এর হার্ড ড্রাইভ স্টোরেজটির জন্য যা ভারসাম্য ব্যাসার্ধের নীচে যেখানে দুটি ড্রাইভের সমান তীক্ষ্ণ বেগ আছে have
ইমারিজিট

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

16

সি #। নেট বিল্ডগুলির জন্য, আপনি নেট নেট ব্যবহার করতে পারেন । এটি এমন একটি পণ্য যা ভিজ্যুয়াল স্টুডিও বিল্ড প্রক্রিয়াটিকে দ্রুত করার জন্য এটি গ্রহণ করে।

এটি আপনার করা পরিবর্তনগুলি বিশ্লেষণ করে এটি করে এবং কেবলমাত্র আপনি যে প্রকল্পটি বদলেছিলেন সেই প্রকল্পগুলি এবং সেই সাথে অন্যান্য প্রকল্পগুলিও তৈরি করে যা প্রকৃতপক্ষে আপনি যে পরিবর্তনগুলি করেছিলেন তার উপর নির্ভর করে। এর অর্থ আপনি যদি কেবলমাত্র অভ্যন্তরীণ কোড পরিবর্তন করেন তবে কেবলমাত্র একটি প্রকল্প তৈরি করতে হবে।


ভিএস কি ইতিমধ্যে তা করে না? অথবা আপনি বোঝাতে চাইছেন মতামত ইত্যাদির মতো অপ্রাসঙ্গিক পরিবর্তনগুলি বাতিল করা হয়েছে?
নওফাল

1
রেডগেট দুর্ভাগ্যক্রমে। নেট
দানবীর

14

আপনার অ্যান্টিভাইরাস বন্ধ করুন। এটি সংকলনের সময়গুলিতে বয়সগুলি যুক্ত করে।


2
... কোড / সংকলন ফোল্ডারের জন্য। কম্বল-কভারেজ নিয়মের হিসাবে এভি সুরক্ষা পরিবর্তন করা একটি উজ্জ্বল ধারণা নয়। : ও)
ব্রেট রিগবি

5
আপনার এটি বন্ধ করার দরকার নেই, এটিকে সঠিকভাবে কনফিগার করা সাধারণত পর্যাপ্ত। সংকলক / লিংক যার সাথে কাজ করে সেই ফাইল ধরণের ব্যতিক্রম যুক্ত করুন। কিছু অ্যান্টিভাইরাস প্যাকেজগুলির এই ব্যতিক্রমগুলি ডিফল্টরূপে যুক্ত হয়, কিছু থাকে না।
ডার্ললন

@ কর্নেলিয়াস সঠিক অ্যান্টি-ভাইরাস কনফিগারেশন কী? আপনি বিশদ সরবরাহ করতে পারেন? (সম্ভবত কোনও পৃথক প্রশ্নে?)
পাভেল রদজিভিলভস্কি

@ পাভেল: ঠিক আছে, সি ++ এর জন্য কম্পাইলারটি যে ফাইলগুলির সাথে কাজ করে সেগুলি বাদ দিন, যা .o, .pdb, .ilk, .lib, .cpp, .h। এছাড়াও, কিছু অ্যান্টিভাইরাস সফ্টওয়্যার (যেমন। আভিরা অ্যান্টিভাইর) আপনাকে পড়তে, লিখতে বা উভয় ক্ষেত্রেই ফাইল স্ক্যান করতে দেয়। এটি পড়তে স্ক্যান করতে সেট করা আপনাকে 99% সুরক্ষা দেবে।
ডার্ললন

12

বিতরণ সংকলন ব্যবহার করুন। Xoreax IncrediBuild কয়েক মিনিট সংকলন সময় কেটে ফেলবেন পারবেন না।

আমি এটি একটি বিশাল সি \ সি ++ সমাধানে ব্যবহার করেছি যা সংকলন করতে সাধারণত 5-6 ঘন্টা সময় নেয়। IncrediBuild এবার 15 মিনিটে হ্রাস করতে সহায়তা করেছে।


বেশ কয়েকটি অতিরিক্ত পিসিতে ইনক্রেডি বিল্ড ইনস্টল করা আমাদের সি ++ প্রকল্পের জন্য প্রায় কোনও প্রশাসনের প্রচেষ্টা ছাড়াই 10 বা তার বেশি ফ্যাক্টর দ্বারা সংকলন সময় হ্রাস করে।
স্টিফেল

আকুতেও একই অভিজ্ঞতা ছিল ... তবে লিঙ্কটি এখনও একটি ইস্যু ছিল
পল ক্যারল

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

11

আপনার ভিজ্যুয়াল স্টুডিও সংকলন সময়টি কয়েক সেকেন্ডে হ্রাস করার জন্য নির্দেশাবলী

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

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

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

এই কৌশলটি কাজ করার জন্য, এসেম্বলিআইএনফো এবং গ্লোবালঅ্যাস্পেইশনআইনফো ফাইলগুলিতে পাওয়া ভার্সন নাম্বারটি বিকাশকারীর মেশিনে স্থির থাকতে হবে (অবশ্যই প্রকাশের সময় নয়) এবং আপনি আপনার ডিএলএলগুলিতে সই করেন না।

এই ম্যানুয়ালকম্পাইল কৌশলটি ব্যবহারের একটি সম্ভাব্য ঝুঁকি হ'ল বিকাশকারী প্রয়োজনীয় প্রকল্পগুলি সংকলন করতে ভুলে যেতে পারেন এবং যখন তারা ডিবাগারটি শুরু করেন, তখন তারা অপ্রত্যাশিত ফলাফল পান (ডিবাগার সংযুক্ত করতে অক্ষম, ফাইলগুলি পাওয়া যায় না, ইত্যাদি)। এটি এড়াতে, বৃহত্তর কোডিং প্রচেষ্টা সংকলনের জন্য 'ডিবাগ' বিল্ড কনফিগারেশনটি ব্যবহার করা সবচেয়ে ভাল এবং কেবল ইউনিট পরীক্ষার সময় বা সীমিত সুযোগের দ্রুত পরিবর্তন করার জন্য ম্যানুয়ালকম্পাইল বিল্ড কনফিগারেশন ব্যবহার করুন।


8

এটি যদি সি বা সি ++ হয় এবং আপনি প্রাকম্পাইল্ড শিরোনাম ব্যবহার করছেন না, আপনার হওয়া উচিত।


প্রাক-সংকলিত শিরোনামগুলি যদি আপনার জন্য কাজ করে তবে তারা একটি ভাল কৌশল they আপনি তৈরি করার সময় যদি আপনাকে বেশিরভাগ সময় শিরোনামকে পূর্বরক্ষিত করতে থাকে তবে আপনি কোনও কিছুই সংরক্ষণ করছেন না।
টম সোয়ারলি

7

আমাদের মূল সমাধানটিতে একটি 80+ প্রকল্প ছিল যা কোনও বিকাশকারী কী ধরণের মেশিনে কাজ করে তার উপর নির্ভর করে প্রায় 4 থেকে 6 মিনিট সময় নেয় build আমরা এটিকে অনেক দীর্ঘ বলে বিবেচনা করেছি: প্রতিটি পরীক্ষার জন্য এটি সত্যই আপনার এফটিইগুলি খেয়ে ফেলে।

কিভাবে দ্রুত বিল্ড বার পেতে? আপনি ইতিমধ্যে জানেন যে এটি প্রকল্পের সংখ্যা যা সত্যিই বিল্ডটাইমকে আঘাত করে। অবশ্যই আমরা আমাদের সমস্ত প্রকল্পগুলি থেকে মুক্তি পেতে এবং সমস্ত উত্সফায়ালাকে একটিতে ফেলে দিতে চাইনি। তবে আমাদের কিছু প্রকল্প ছিল যা আমরা তবুও একত্রিত করতে পারি: সমাধান হিসাবে প্রতিটি "সংগ্রহস্থল প্রকল্প" এর নিজস্ব ইউনিটস্টেট প্রকল্প ছিল, তাই আমরা কেবলমাত্র ইউনিটস্টেট প্রকল্পগুলিকে একটি গ্লোবাল-ইউনিটেস্ট প্রকল্পে একত্রিত করেছি। এটি প্রায় 12 টি প্রকল্পের সাহায্যে প্রকল্পের সংখ্যা হ্রাস করেছে এবং পুরো সমাধানটি তৈরিতে 40% সময় সাশ্রয় করেছে।

আমরা যদিও অন্য একটি সমাধান সম্পর্কে চিন্তা করছি।

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

তবে দুটি ভিন্ন সমাধান নিয়ে কাজ করা কিছুটা সতর্কতার সাথে বিবেচনা করবে। বিকাশকারীরা দ্বিতীয় সমাধানে প্রকৃতপক্ষে কাজ করার দিকে ঝুঁকতে পারে এবং প্রথমটিকে সম্পূর্ণ অবহেলা করে। যেহেতু 70+ প্রকল্পের সাথে প্রথম সমাধানটি হ'ল সমাধান যা আপনার অবজেক্ট-হায়ারার্কির যত্ন নেয়, এটি এমন সমাধান হওয়া উচিত যেখানে আপনার বিল্ডার্সভারটি আপনার সমস্ত ইউনিট চালাবেন। সুতরাং কন্টিনিউজ ইন্টিগ্রেশনের সার্ভারটি অবশ্যই প্রথম প্রকল্প / সমাধান হতে পারে। আপনার অবজেক্ট-হায়ারার্কি ঠিক রাখতে হবে।

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


7

আপনার রেফারেন্সগুলি প্রকল্পের রেফারেন্সগুলি এবং গ্রন্থাগারের আউটপুট ডিরেক্টরিগুলির সরাসরি ডিএলএলগুলিতে নয় তা নিশ্চিত করুন।

এছাড়াও, যেখানে একেবারে প্রয়োজনীয় (মাস্টার EXE প্রকল্প) ব্যতীত স্থানীয়ভাবে অনুলিপি করার জন্য এই সেটগুলি রাখুন।


কেন আপনি দ্রুত ব্যাখ্যা করতে পারেন? "প্রকল্পের রেফারেন্স" বলতে প্রকল্পের বিল্ডিং বোঝায় (যা প্রত্যক্ষ ডিএলএল রেফারেন্সের চেয়ে অনেক ধীর )।
কোডিং

6

আমি এই প্রতিক্রিয়াটি এখানে মূলত এখানে পোস্ট করেছি: /programming/8440/visual-studio-optimizations#8473 আপনি এই পৃষ্ঠায় আরও অনেক সহায়ক ইঙ্গিত পেতে পারেন।

আপনি যদি ভিজ্যুয়াল স্টুডিও 2008 ব্যবহার করছেন, আপনি সমান্তরালে একক প্রকল্প তৈরি করতে / এমপি পতাকা ব্যবহার করে সংকলন করতে পারেন। আমি পড়েছি যে এটি ভিজ্যুয়াল স্টুডিও 2005 এর একটি অনিবন্ধিত বৈশিষ্ট্য, তবে কখনও নিজেকে চেষ্টা করি নি।

আপনি / এম পতাকা ব্যবহার করে সমান্তরালে একাধিক প্রকল্প তৈরি করতে পারেন, তবে এটি সাধারণত মেশিনে উপলব্ধ কোরগুলির সংখ্যাতে ইতিমধ্যে সেট করা থাকে, যদিও এটি কেবল ভিসি ++ এর ক্ষেত্রে প্রযোজ্য believe


1
সতর্ক হোন. ২০০৮ সালে একটি বাগ রয়েছে যা ছাঁটাই করে দেয়। এমএস বলছে যে তারা vs2010 পর্যন্ত ঠিক করবে না। এটি একটি ভয়াবহ সমস্যা কারণ এটি অবিচ্ছিন্ন বিভ্রান্তিকর সমস্যাগুলির সৃষ্টি করে .obj ফাইলগুলি ছাঁটাই করে। তোমাকে সতর্ক করা হইছে. ;) social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/…
জাস্টিন

6

আমি লক্ষ্য করেছি যে এই প্রশ্নটি বহু বছরের পুরনো, তবে বিষয়টি আজও আগ্রহের বিষয়। একই সমস্যাটি আমাকে ইদানীং বিট করেছে এবং দুটি বিষয় যা বিল্ড পারফরম্যান্সে সর্বাধিক উন্নতি করেছিল সেগুলি হ'ল (1) সংকলনের জন্য একটি ডেডিকেটেড (এবং দ্রুত) ডিস্ক ব্যবহার করুন এবং (2) সমস্ত প্রকল্পের জন্য একই আউটপুটফোল্ডার ব্যবহার করুন এবং কপিরাইটলোকটিকে প্রকল্পে মিথ্যাতে সেট করুন রেফারেন্স।

কিছু অতিরিক্ত সংস্থান:


5

কিছু বিশ্লেষণ সরঞ্জাম:

সরঞ্জাম-> বিকল্পগুলি -> ভিসি ++ প্রকল্প সেটিংস -> সময় নির্মানের = হ্যাঁ আপনাকে প্রতিটি ভিসিপ্রিজের জন্য সময় তৈরির কথা বলবে।

/Btপ্রতিটি সিপিপি ফাইল কত নেয় তা দেখতে সংকলক কমান্ড লাইনে স্যুইচ যুক্ত করুন

/showIncludesনেস্টেড ক্যাপচার ব্যবহারের মধ্যে অন্তর্ভুক্ত রয়েছে (অন্যান্য শিরোনামের ফাইলগুলি অন্তর্ভুক্ত করে এমন শিরোলেখ ফাইলগুলি) এবং কী ফাইলগুলি ফরোয়ার্ডের ঘোষণাগুলি ব্যবহার করে প্রচুর IO সংরক্ষণ করতে পারে তা দেখুন।

এটি নির্ভরতা এবং পারফরম্যান্স হোগগুলি বাদ দিয়ে সংকলক পারফরম্যান্সকে অনুকূল করতে সহায়তা করবে।


5

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

আমার ক্ষেত্রে, Incredibuild এর সাথে 7200 RPM SATA ড্রাইভে 6-কোর i7 তৈরি করতে 5 মিনিট সময় নেয় এমন একটি প্রকল্প একটি র‌্যাম ডিস্ক ব্যবহার করে প্রায় 15 সেকেন্ড হ্রাস পেয়েছে। স্থায়ী সঞ্চয়স্থান এবং হারিয়ে যাওয়া কাজের সম্ভাবনা বিবেচনা করে 15 সেকেন্ডে একটি র‌্যাম ডিস্ক ব্যবহার করার পক্ষে যথেষ্ট উত্সাহ নয় এবং সম্ভবত উচ্চ-আরপিএম বা এসএসডি ড্রাইভে কয়েকশো ডলার ব্যয় করার জন্য তেমন উত্সাহ নয়।

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

প্রকৃত কোডের উপর নির্ভর করে আপনি আপনার মাইলেজটি সংকলন করতে পারেন বিভিন্ন হতে পারে - তাই পরীক্ষা করতে দ্বিধা করবেন না।


র‌্যাম ডিস্কগুলি আমার অভিজ্ঞতায় ভিএসকে সময় তৈরিতে সহায়তা করে না এবং এগুলি একটি ব্যথা কারণ প্রতিবার আপনার কম্পিউটারটি পুনরায় চালু হওয়ার সময় বা ক্রাশ করার সময় আপনাকে সেগুলি পুনরায় তৈরি করতে হবে। ব্লগ পোস্টটি এখানে দেখুন: josephfluckiger.blogspot.com/2009/02/…
ব্রোকমাইলগাইকিং

3

সম্পূর্ণ বিল্ড করার পরে আপনার বিল্ড ডিরেক্টরিটি কত বড়? যদি আপনি ডিফল্ট সেটআপটি আটকে থাকেন তবে আপনার তৈরি প্রতিটি সমাবেশ তার নির্ভরতাগুলির সমস্ত ডিএলএল এবং তার নির্ভরতাগুলির নির্ভরতা ইত্যাদি এর ডিরেক্টরি ডিরেক্টরিতে অনুলিপি করবে। আমার আগের চাকরীতে 40 ডলার প্রকল্পের সমাধান নিয়ে কাজ করার সময় আমার সহকর্মীরা আবিষ্কার করেছিলেন যে বিল্ড প্রক্রিয়াটির সবচেয়ে ব্যয়বহুল অংশটি এই সমাবেশগুলি অনুলিপি করে অনুলিপি করছে এবং একটি বিল্ড একই ডিএলএল এর অনুলিপিগুলির গিগা বাইট তৈরি করতে পারে এবং আবারো.

এনডিপেন্ডের লেখক প্যাট্রিক স্মাচিয়ার কিছু কার্যকর পরামর্শ এখানে দেওয়া হয়েছে যে তিনি কী বিশ্বাস করেন যে পৃথক সমাবেশ হওয়া উচিত এবং হওয়া উচিত নয়:

http://codebetter.com/patricksmacchia/2008/12/08/advices-on-partitioning-code-through-net-assemblies/

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


আমি চাকরিটি ছেড়ে দিয়েছি যে এটি কিছুক্ষণ আগে একটি সমস্যা ছিল, কিন্তু আমার নতুন অবস্থানে এটি ঠিক আমরা বাস্তবায়ন করেছি! চিয়ার্স। জেসি
জনক

2

সম্ভবত কিছু সাধারণ ফাংশন গ্রহণ করুন এবং কিছু গ্রন্থাগার তৈরি করুন, একই উত্সগুলি একাধিক প্রকল্পের জন্য বারবার সংকলিত হচ্ছে না।

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


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

2

ভিএসএস ইন্টিগ্রেশন বন্ধ করুন। এটি ব্যবহারে আপনার পছন্দ নাও থাকতে পারে, তবে ডিএলএলগুলি "দুর্ঘটনাক্রমে" সারাক্ষণ নাম বদলে যায় ...

এবং অবশ্যই আপনার প্রাক-সংকলিত শিরোনাম সেটিংস পরীক্ষা করুন। ব্রুস ডসনের গাইডটি কিছুটা পুরাতন তবে তবুও খুব ভাল - এটি পরীক্ষা করে দেখুন: http://www.cygnus-software.com / পেপারস / পূর্ববর্তী সংস্থাগুলি html


অবশ্যই আমরা ভিএসএসে সংহতকরণ বন্ধ করতে পারি এবং পরিবর্তে উত্স নিরাপদ ইউআইয়ের মাধ্যমে এটিকে চালিত করতে পারি। খুব ভাল
লাগলো

2

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

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

ব্যাচ ফাইলও সম্পূর্ণ ফলাফলটিকে (বা বেশ কয়েকটি) পরীক্ষার ফোল্ডারে অনুলিপি করে। সেটিংসের উপর নির্ভর করে এটি কয়েক সেকেন্ডে এক মিনিটে সম্পূর্ণ হয় (আধ ঘন্টা বলার বিপরীতে)।

আমি .rc ফাইলের মতো জিনিসের উপর নিয়ন্ত্রণ রাখতে পছন্দ করি বলে আমি একটি আলাদা আইডিই (জিউস) ব্যবহার করি এবং আসলে আমি এমএস কমপ্লায়ার ব্যবহার করেও কমান্ড লাইন থেকে সংকলন করতে পছন্দ করি।

কেউ আগ্রহী হলে এই ব্যাচের ফাইলটির উদাহরণ পোস্ট করে খুশি।


2

আপনার উত্স ডিরেক্টরিতে ফাইল সিস্টেম সূচীকরণ অক্ষম করুন (আপনি যদি উত্স অনুসন্ধানযোগ্য চান তবে বিশেষত আপত্তি ডিরেক্টরিগুলি)


1

এটি যদি কোনও ওয়েব অ্যাপ্লিকেশন হয়, তবে ব্যাচকে সত্যে নির্ধারণ করা দৃশ্যের উপর নির্ভর করে সহায়তা করতে পারে।

<compilation defaultLanguage="c#" debug="true" batch="true" >  

আপনি এখানে একটি ওভারভিউ খুঁজে পাবেন: http://weblogs.asp.net/bradleyb/archive/2005/12/06/432441.aspx


1

আপনি বিজ্ঞপ্তি প্রকল্প রেফারেন্সও পরীক্ষা করতে চাইতে পারেন। এটা আমার জন্য একবার সমস্যা ছিল।

এটাই:

প্রকল্পের একটি উল্লেখ প্রকল্প বি

প্রকল্প বি রেফারেন্স প্রকল্প সি

প্রকল্প সি রেফারেন্স প্রকল্প এ


1
যদি এটি হয় তবে সমাধানটি কখনই সংকলন করবে না।
মাইকেল

@ মিশেল এটি সংকলন করবে যদি আপনি প্রকল্পের রেফারেন্স ব্যবহার না করে ডিবাগ ডিরেক্টরিতে dll এর উল্লেখ করেন।
কালেব জেরেস 3'16

1

জোরেক্স আইবি-র একটি সস্তার বিকল্প হ'ল আমি যাকে উবার-ফাইল বিল্ড বলি তা ব্যবহার। এটি মূলত একটি .cpp ফাইল যা রয়েছে

#include "file1.cpp"
#include "file2.cpp"
....
#include "fileN.cpp"

তারপরে আপনি পৃথক মডিউলগুলির পরিবর্তে উবার ইউনিটগুলি সংকলন করুন। আমরা 10-15 মিনিট থেকে শুরু করে 1-2 মিনিটের সময় পর্যন্ত সংকলনের সময় দেখেছি। আপনাকে ওবার ফাইলের জন্য কত # অন্তর্ভুক্ত রয়েছে তা পরীক্ষা করে দেখতে হতে পারে ie প্রকল্পগুলির উপর নির্ভর করে। ইত্যাদি। আপনি সম্ভবত 10 টি ফাইল অন্তর্ভুক্ত করবেন।

আপনি একটি মূল্য দিতে তাই সাবধান:

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

এটি এক ধরনের ব্যথা, তবে এমন একটি প্রকল্পের জন্য যা মডিউলগুলির ক্ষেত্রে নতুনভাবে স্থিতিশীল, অন্তর্নিহিত ব্যথার পক্ষে এটি উপযুক্ত হতে পারে be আমি এই পদ্ধতিটি কিছু ক্ষেত্রে আইবিকে মারতে দেখেছি।


1

যদি এটি কোনও সি ++ প্রকল্প হয় তবে আপনার পূর্বনির্ধারিত শিরোনাম ব্যবহার করা উচিত। এটি সঙ্কলন সময়ে একটি বিশাল পার্থক্য তোলে। নিশ্চিত না যে cl.exe আসলে কী করছে (প্রাকম্পাইল্ড শিরোনাম ব্যবহার না করে), শেষ পর্যন্ত সঠিক জায়গায় যাওয়ার আগে এটি সমস্ত ভুল জায়গায় প্রচুর এসটিএল শিরোনাম সন্ধান করছে । এটি প্রতিটি একক .cpp ফাইল সংকলন করে পুরো সেকেন্ড যোগ করে। নিশ্চিত না যে এটি কোনও cl.exe বাগ, বা VS2008 এ কোনও ধরণের এসটিএল সমস্যা।


1

আপনি যে মেশিনটি তৈরি করছেন তার দিকে তাকিয়ে, এটি কি সর্বোত্তমভাবে কনফিগার করা হয়েছে?

আমরা শুধু আমাদের বৃহত্তম সি ++ এন্টারপ্রাইজ-স্কেল পণ্যের জন্য আমাদের বিল্ড সময় পেয়েছিলাম থেকে নেমে 19 ঘন্টা থেকে 16 মিনিট নিশ্চিত ডান সময় SATA ফিল্টার চালক ইনস্টল করা ছিল দ্বারা।

সূক্ষ্ম।


ড্রাইভের গতি অবশ্যই অবদান রাখার কারণ
21

অনুকূলভাবে কনফিগার করা হয়নি। 2 জিবি র‌্যাম শুরু দিয়ে খুব কম little
টমটম

1

ভিজ্যুয়াল স্টুডিও 2005-এ অননুমোদিত / এমপি স্যুইচ রয়েছে, দেখুন http://lahsiv.net/blog/?p=40 , যা প্রকল্পের ভিত্তিতে ফাইলের ভিত্তিতে সমান্তরাল সংকলন সক্ষম করবে। এটি শেষ প্রকল্পের সংকলন গতিবেগ করতে পারে বা আপনি যদি একটি প্রকল্প সংকলন করেন।


1

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


1

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

আমার চিন্তাভাবনাগুলি হ'ল এটি একটি মেমরি পেজিং ইস্যু - ভিএস সবেমাত্র মেমরির বাইরে চলে যায় এবং জায়গা তৈরির চেষ্টা করার জন্য ও / এস পৃষ্ঠাটি অদলবদল শুরু করে তবে ভিএস পৃষ্ঠার সোয়াপিং সরবরাহ করতে পারে তার চেয়ে বেশি দাবি করে, সুতরাং এটি ক্রলটিতে ধীর হয়ে যায়। আমি অন্য কোনও ব্যাখ্যা ভাবতে পারি না।

ভিএস অবশ্যই স্পষ্টভাবে কোনও রেড সরঞ্জাম নয়, তাই না?


আমারও ভিএস ২০০৫ এর সাথে এই সমস্যা ছিল - স্পষ্টভাবে পেজিং
জনক

1

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

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

দেখুন এবং দেখুন, ধীর-সম্পাদনকারী মেশিনের একটি পার্থক্য ছিল - স্ট্যাকট্রেসের মধ্যে এনট্রেস্ট.ডিলের একটি উল্লেখ। এই নতুন অর্জিত তথ্যটি ব্যবহার করে, আমি স্ট্যাকওভারফ্লো অনুসন্ধান চালিয়ে যেতে পেরেছি এবং এটি পেয়েছি: কিছু মেশিনে এমএসবিল্ড (ভিএস 2010) খুব ধীর গতির । গৃহীত উত্তর অনুসারে সমস্যাটি প্রকৃত অর্থে এনট্রাস্ট হ্যান্ডলার স্থানীয় মাইক্রোসফ্ট হ্যান্ডলারের পরিবর্তে .NET শংসাপত্রের চেকগুলি প্রক্রিয়া করছিল in টিটি-তে এও প্রস্তাব দেওয়া হয় যে এনট্রেস্ট ভি 10 এনটর্স্ট 9-এ প্রচলিত এই সমস্যাটি সমাধান করে।

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


0

এটি নিশ্চিত যে ভিএস ২০০৮ এ সমস্যা আছে। কারণ আমার প্রকল্পটি উন্নত করার জন্য VS2008 ইনস্টল করা কেবলমাত্র আমিই করেছি যা VS2005 দিয়ে তৈরি হয়েছে। আমার সমাধানে আমি কেবল 2 টি প্রকল্প পেয়েছি। এটি বড় নয়। ভিএস ২০০৫: ৩০ সেকেন্ড সহ সংকলন ভিএস ২০০৮: ৫ মিনিট সহ সংকলন


সেখানে আরও একটি সমস্যা থাকতে হবে, 2 প্রকল্পের একটি শালীন মেশিনে জরিমানা চালানো উচিত
জনক

0

ভাল পরামর্শ যা এখন পর্যন্ত সাহায্য করেছে (নীচে অন্যান্য সুন্দর পরামর্শ নেই বলে মনে হচ্ছে না, যদি আপনার সমস্যা হয় তবে আমি তখন পড়ার পরামর্শ দিই, কেবল আমাদের কী সাহায্য করেছে)

  • নতুন 3 জিএইচজেড ল্যাপটপ - পরিচালনায় হোয়াইট করার সময় হারিয়ে যাওয়া ব্যবহারের শক্তি বিস্ময়ের কাজ করে
  • সংকলনের সময় অ্যান্টি ভাইরাস অক্ষম করুন
  • সংকলনের সময় ভিএসএস (প্রকৃতপক্ষে নেটওয়ার্ক) থেকে 'সংযোগ বিচ্ছিন্ন' - আমি আমাদের পুরোপুরি ভিএস-ভিএসএস ইন্টিগ্রেশন সরিয়ে নিতে এবং ভিএসএস ইউআই ব্যবহার করতে আটকে থাকতে পারি

এখনও একটি সংকলনের মাধ্যমে ছিঁড়ে-ছিটিয়ে পড়া নয়, তবে প্রতিটি বিট সাহায্য করে।

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

আমরা এগুলি অস্থায়ী সমাধান তৈরি করে যা আমাদের কাজ করতে হবে সেই জায়গাগুলি সজ্জিত করে এবং কোডটি পুনরায় সংহত করার পরে এগুলি ফেলে দিয়ে existing উন্নয়নের সময় দ্রুত পুনরায় সংঘর্ষের অভিজ্ঞতা যেমন রিপ ভ্যান উইঙ্কল না পেয়ে আমরা যে সময়টি অর্জন করি তার বিপরীতে এই কোডটি পুনরায় সংহত করতে যে সময় লাগবে আমাদের তা ওজন করা উচিত।

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

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