আপনি কি জন্য অনুকূলিত হন? [বন্ধ]


19

সাধারণভাবে বলতে গেলে, সফ্টওয়্যার ডিজাইনের সময় আপনি সাধারণত কোন ধরণের অপ্টিমাইজেশনের দিকে নিজেকে ঝাপিয়ে যান?

আপনি কি এমন ধরণের যা আপনার নকশাকে অনুকূলিত করতে পছন্দ করে?

  • বিকাশের সময় (যেমন, দ্রুত লিখতে এবং / অথবা বজায় রাখা সহজ)?
  • প্রক্রিয়াকরণের সময়
  • স্টোরেজ (হয় র‌্যাম, ডিবি, ডিস্ক ইত্যাদি) স্থান

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


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

উত্তর:


40

রক্ষণাবেক্ষণ

তারপরে প্রয়োজনে প্রোফাইলিং এবং গতির জন্য অনুকূলিতকরণ। খুব কমই আমার কখনও স্টোরেজের প্রয়োজন ছিল - কমপক্ষে গত 10 বছরেও নয়। তার আগে আমি করেছি।


8
+1, আপনি যদি শুরু করার জন্য রক্ষণাবেক্ষণের জন্য অনুকূলিত হন, তবে এটি প্রয়োজনীয় প্রমাণিত হলে পরে গতি বা সঞ্চয়স্থানের জন্য অনুকূলকরণ করা আরও সহজ হবে।
কারসন 63000

আপনার এখনও কমপক্ষে প্রক্রিয়া করার সময় এবং স্টোরেজ বিবেচনা করা দরকার যাতে আপনি চূড়ান্তভাবে ব্যবহারের উপায় গ্রহণ না করেন।

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

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

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

27

বিকাশের সময়

প্রসেসিং এবং স্টোরেজ সস্তা। আপনার সময় হয় না।

শুধু লক্ষণীয়:

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

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


4
মুর আইন প্রায় দুই বছর আগে শেষ হয়েছিল। একযোগে মুদ্রার বিষয়ে চিন্তা করা এবং সেই অতিরিক্ত অতিরিক্ত ব্যবহারগুলি শুরু করার সময় হতে পারে। ভবিষ্যতে আপনি কেবলমাত্র সস্তা ঘড়িচক্র পেতে পারেন।
রবার্ট হার্ভে

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

1
"প্রক্রিয়াজাতকরণ এবং সঞ্চয়স্থান সস্তা is" সিপিইউ ক্যাশে এবং বাসের গতি নেই। তারাই আজ প্রধান পারফরম্যান্সের বাধা।
মোজুবা

3
আমি এটার সাথে সম্পূর্ণ একমত। পঠনযোগ্য কোড বজায় রাখা, কার্যের জন্য উপযুক্ত সরঞ্জামগুলি ব্যবহার করা এবং আপনার সংস্থার সম্মত-মানদণ্ডগুলি মেনে চলা আপনার কম্পিউটারে প্রকৃত কোড টাইপ করতে ব্যয় করা আপনার সময়কে উল্লেখযোগ্যভাবে হ্রাস করবে, আপনার সংস্থাকে এক টন অর্থ সাশ্রয় করবে। আপনার সময় টাইপিংয়ের চেয়ে ইঞ্জিনিয়ারিংয়ে ব্যয় করা ভাল।
ম্যাট ডিট্রলিও

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

12

ব্যবহারকারীর অভিজ্ঞতা.

এটি আপনার গ্রাহকের পক্ষে একমাত্র মূল্য।

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

রক্ষণাবেক্ষণ কম গুরুত্বপূর্ণ। আমি সত্যিই খুব দ্রুত আরে মেরামত করতে পারি, তবে এটি কোনও বনের মাঝে থাকলে ব্যবহারকারীরা এটি খুঁজে পেতে পারেন না।

প্রসেসিং সময় কম গুরুত্বপূর্ণ। যদি আমি এমন একটি গাড়ী তৈরি করি যা 60 সেকেন্ডের মধ্যে 0 গতিবেগের দিকে যায় তবে ব্যবহারকারীরা চালাবেনা।

নান্দনিকতা কম গুরুত্বপূর্ণ। আমি একটি মোনা লিসা আঁকতে পারি, তবে সে যদি দেয়ালের আড়ালে লুকিয়ে থাকে তবে কেউ তাকে দেখতে পাবে না।

ব্যবহারকারীর অভিজ্ঞতা হল একমাত্র মান যা গুরুত্বপূর্ণ। এমন একটি অ্যাপ্লিকেশন তৈরি করা যা ব্যবহারকারীর প্রত্যাশার পথে ঠিক কী চায় তা চূড়ান্ত অর্জন।


দুঃখিত জোয়েরি, আমি আমার সম্পাদনায় দূরে সরে গেলাম।
ম্যালফিস্ট

এটি কোনও কিছুর জন্য একটি সম্প্রদায়ের উইকি, তাই না? ;)
জোয়েরি সেব্রিচটস

8

কেবলমাত্র একটি জিনিসই অনুকূলিত করতে পারে এবং তা হ'ল:

আপনার গ্রাহকরা কি চান

আপনার গ্রাহকদের কি দ্রুততম প্রোগ্রামের দরকার আছে? গতির জন্য অনুকূলিতকরণ।

আপনার গ্রাহকদের নিখুঁত নির্ভরযোগ্যতা প্রয়োজন? তার জন্য অপ্টিমাইজ করুন।

আগামীকাল তাদের কি এটি সরবরাহ করা দরকার বা এটি অকেজো হবে? উন্নয়নের গতি জন্য অনুকূলিতকরণ।

অবিশ্বাস্যভাবে ক্ষুদ্র সংস্থান-সীমাবদ্ধ ডিভাইসে চলছে? এই সংস্থানগুলির জন্য অনুকূলিতকরণ।


একমাত্র ধরাটি হ'ল তারা প্রায়শই জানেন না যে তারা কী চান বা কী কী সম্ভব বা সহায়ক তা নিয়ে প্রত্যাশা রয়েছে।
টিম উইলিসক্রফ্ট

1
এবং যখন একাধিক পছন্দের প্রশ্নগুলির সিরিজটি জিজ্ঞাসা করা হয়েছিল, বেশিরভাগ ক্ষেত্রে আপনি কেবল "হ্যাঁ" :-) শুনতে পাবেন
জেসন হোয়াইটহর্ন

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

5

প্রক্রিয়াকরণের সময়

আমার ব্যবহারকারীর সময় কম নয়। কি কাছাকাছি আসে কাছাকাছি যায়.


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


প্রসেসিং সময় স্লেট আকর্ষণীয়। আপনি কী ধরণের অ্যাপ্লিকেশন বিকাশ করবেন তা ভাগ করে নেওয়ার জন্য যত্নশীল? আমি আগ্রহী
জেসন হোয়াইটহর্ন

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

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

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

4

আমি মেমরির ব্যবহার এবং বরাদ্দকে সীমাবদ্ধ করার দিকে ঝোঁক ঝোঁক। আমি জানি এটি পুরানো স্কুল, তবে:

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

ব্লুটারওয়্যার প্রতিরোধে কাজ করার জন্য +1। মেমোরি হগিং প্রোগ্রামগুলি খারাপ প্রোগ্রাম।

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

2

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

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

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


2

ভার্চুয়ালাইজেশন প্রযুক্তি যাই হোক না কেন আমি ব্যবহার করছি

সেই দিনগুলির কথা মনে করুন যখন 512 এমবি র‌্যামের বেশি র‌্যাম সহ সিস্টেমগুলি রক্তপাতের প্রান্ত হিসাবে বিবেচিত হয়? আমি আগের জন্য কোড লেখার জন্য আমার দিন ব্যয়।

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

সুতরাং আমি এখানে, কোডটি লিখছি যা একেবারে নতুন $ 6 কে সার্ভারে চলবে এবং প্রতিটি প্রোগ্রামকে 100 কেবি বরাদ্দ সিলিংয়ের মধ্যে (আদর্শভাবে) কাজ করতে হবে, বা গতিশীল মেমরির বরাদ্দ সম্পূর্ণরূপে রোধ করতে হবে।

সংক্ষিপ্তভাবে, আমি এর জন্য অপ্টিমাইজ করছি:

  • স্মৃতি পদচিহ্ন
  • প্রকারভেদ (যেখানে আমার কোডটির বেশিরভাগ সময় তার বেশিরভাগ সময় ব্যয় করে)

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

প্রতিদিন আমি এটি একটি বিড়ম্বনাজনক দেখতে পেলাম যে প্রযুক্তির অগ্রগতির কারণে গত মাসে কেনা সিস্টেমগুলিতে আমি 15 বছর আগে করেছি ঠিক তেমন কোড লিখছি ।

এম্বেড থাকা প্ল্যাটফর্মগুলিতে কাজ করা যে কারও পক্ষে এটি সাধারণ, যদিও তাদের অনেকেরই কমপক্ষে 1 জিবি রয়েছে have জেসন যেমন উল্লেখ করেছেন, মোবাইল ডিভাইসে চালানোর জন্য প্রোগ্রাম লেখার সময় এটিও সাধারণ is তালিকাটি চলে যায়, কিওস্কস, পাতলা ক্লায়েন্ট, ছবির ফ্রেম ইত্যাদি ..

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


1
মেমরি ফুট মুদ্রণ কোণ জন্য +1। আপনি যে বিশেষ প্রতিবন্ধকতাগুলির সাথে মোকাবিলা করছেন তার বিরুদ্ধে আমি কখনই কোডিং করি নি, তবে জেনের কথা বলার প্রথম বিভাগটি সরিয়ে আইফোনের সাথে প্রতিস্থাপন করেছি এবং আমি ঠিক জানি আপনি কোথায় থেকে এসেছেন :-)
জেসন হোয়াইটহর্ন

2

গবেষণার ফল

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

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


1
  1. নকশা
    • কম সংযোগ, মডুলার
    • সংক্ষিপ্ত, ভাল সংজ্ঞায়িত, কার্যকরী অঞ্চল areas
    • তথ্যসমৃদ্ধ
    • ক্রাফ্টের জন্য ক্রমাগত রিফেক্টর
  2. Maintenence
    • পুনরুত্পাদনযোগ্য বিল্ড এবং ডিবাগ
    • ইউনিট পরীক্ষা
    • রিগ্রেশন পরীক্ষা
    • উৎস নিয়ন্ত্রণ

... তার পরে আর সব

... পরিশেষে, কর্মক্ষমতা জন্য অনুকূলিতকরণ ;-)


1

গুণগতমান / টেস্টিং

মানের দিকে অপ্টিমাইজ করুন, যেমন পরীক্ষার জন্য বিকাশের সময়সূচীর সময় রয়েছে তা নিশ্চিত করে, বৈশিষ্ট্য / পর্যায়ের পরে ইউনিট পরীক্ষা ও পরীক্ষার উভয়ই।


1

এটি আপনার প্রোগ্রামের প্রয়োজনের উপর নির্ভর করে।

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

আমি অতীতে এমন প্রকল্পগুলিতে কাজ করেছি যেখানে কোডটি ঘন ঘন পরিবর্তিত হয় তাই সেই ক্ষেত্রে রক্ষণাবেক্ষণযোগ্যতা আরও গুরুত্বপূর্ণ হয়ে ওঠে।

আমি অতীতে এমন সিস্টেমেও কাজ করেছি যেখানে ডেটা পরিমাণ সর্বাধিক তাৎপর্যপূর্ণ সমস্যা, এমনকি স্টোরেজ করার জন্য ডিস্কেও, তবে সাধারণত যখন আপনি তথ্যকে পুরোপুরি সরিয়ে নিতে হয় বা ধীর গতিতে তখন আকারটি একটি সমস্যা হয়ে দাঁড়ায় লিঙ্ক।


1

কমনীয়তা

যদি আপনার কোডটি ভালভাবে ডিজাইন করা থাকে তবে এর বেশ কয়েকটি প্রভাব থাকবে:

  1. এটি বজায় রাখা সহজ হবে (গ্রাহকের জন্য ব্যয় ব্যয়)
  2. এটি অপ্টিমাইজ করা সহজ হবে (জেআইটি বা সম্পূর্ণ সংকলকগুলির জন্য)
  3. এটি প্রতিস্থাপন করা সহজ হবে (যখন আপনি আরও ভাল সমাধানের কথা ভাবেন)


0

যেহেতু আমি একাধিক ধরণের সিস্টেমে ইনস্টলশন করি, আইবিএম মেইনফ্রেম থেকে শুরু করে পিসি পর্যন্ত, আমি প্রথমে সামঞ্জস্যের জন্য, তারপরে আকারের, তারপরে গতির জন্য অনুকূলিতকরণ করি।


0

এটা নির্ভর করে

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

তবে, সমস্ত ক্ষেত্রে আপনার কোড অবশ্যই কাজ করবে এবং এটি অবশ্যই বজায় রাখা উচিত।


0

আমার অভিপ্রায় প্রকাশ।

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

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


-6

তাদের সবাই

প্রক্রিয়াকরণের সময়

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

সংগ্রহস্থল

আপনার গ্রাহকের একটি বড় ডিস্ক থাকতে পারে, যাক, 1Tb বলুন। কোনটি 1000 টি এইচডি চলচ্চিত্র গ্রহণ করতে পারে, আপনি যদি এটিকে কোনও পরিষেবা তৈরি করতে চান তবে এটি যথেষ্ট নয়, তাই না?

বিকাশের সময়

তবে আমি নিশ্চিত নই যে এই গণনাটি "অপ্টিমাইজেশন" হিসাবে গণ্য হয়, আমি কী করি আমি সি ++ এর পরিবর্তে জাভা ব্যবহার করি এবং বিকাশটি 10 ​​গুণ দ্রুত হয় I এগিয়ে এবং সম্পূর্ণ শিলা!

বিটিডাব্লু আমি বিশ্বাস করি যে আপনার বিকাশের প্রক্রিয়াটি আপনার বিকাশের প্রক্রিয়াটি গতিময় করে তুলবে আপনার জাভা বেছে নেওয়া উচিত, অজগরের মতো জঞ্জাল কখনও চেষ্টা করবেন না ... যা দাবি করে যে তারা আপনাকে ডেভ সময় সংক্ষেপণ করতে পারে।


আপনি এটি পড়তে আগ্রহী হতে পারেন: paulgraham.com/avg.html - এটি প্রোগ্রামিং ভাষার শক্তি নিয়ে আলোচনা করে।

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

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