একটি বৃহত এবং জটিল সফ্টওয়্যার পণ্য ধীর করে তোলে কি? [বন্ধ]


16

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

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

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


7
সাধারণ: জড়তা কাটিয়ে ওঠার জন্য আরও শক্তি প্রয়োগ করা দরকার।
শোগ 9

কেউ একবার আমাকে পরিচালকদের বলেছিলেন তবে আমি একেবারেই বিশ্বাস করি না।
মিচেল গ্রাসম্যান

1
এটি এখনও মূলত ডেলফি প্রোগ্রামিংয়ের জন্য ডি 7 ব্যবহার করার কারণে এটির একটি বড় অংশ।
গ্র্যান্ডমাস্টারবি

দ্রুততম কোডটি যা কখনও কার্যকর হয় না।
হেনরি

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

উত্তর:


20

স্থাপত্যবিদ নভোচারী

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

যেকোন র্যান্ডম পয়েন্টে ভিজ্যুয়াল স্টুডিওর মতো প্রোগ্রাম বন্ধ করুন। স্ট্যাক ট্রেস তাকান। সম্ভাবনা খুব ভাল যে আপনি কলিং স্ট্যাকের 20 স্তরের গভীর এবং সেখানে যাওয়ার জন্য পাঁচটি ডিএলএল লোড করা হয়েছিল।

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

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

আমরা কি আরও ভাল? এটি দার্শনিকদের জন্য একটি প্রশ্ন, কোডারদের জন্য নয়।


4
একটি ডেল্ফি প্রোগ্রাম ফ্ল্যাট দেখায় না। বরং একজন প্রোগ্রামার ফ্ল্যাট দেখতে একটি প্রোগ্রাম করে। আপনি ডেলফির সাথে সি-# বা সি ++ তে যেমন সুন্দর দেখতে, আধুনিক, পুরো রঙের ইন্টারফেস তৈরি করতে পারেন।
গ্র্যান্ডমাস্টারবি

2
এটি একটি অন্তর্দৃষ্টিপূর্ণ উত্তর; তবে আমি নিশ্চিত না যে এটি সম্পূর্ণ। ভিজ্যুয়াল স্টুডিও ২০০৮ (২০১০ এর পূর্বসূরীর) এতে কোনও ডাব্লুপিএফ নেই এবং এটি এখনও ডেলফির চেয়ে ধীরে ধীরে পৃথিবী 7.. আপনি কি এখনও কল স্ট্যাকের গভীরতা এবং লোড হওয়া ডিএলএল সংখ্যা সম্পর্কে একই কথা বলতে চান?
টিমউই

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

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

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

11

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

আমি মনে করি আপনি তাদের বেশিরভাগের অনুমান করেছেন তবে আমি যুক্তিসঙ্গতভাবে বৃহত কোডবেজে কাজ করেছি (এটি ভিজ্যুয়াল স্টুডিওর মতো বড় কিনা তা নিশ্চিত নয় - লক্ষ লক্ষ কোডের লাইনে ছিল) আমি সবচেয়ে বড় ফ্যাক্টর হিসাবে বিবেচিত যা অফার করতে চাই বিভাগ এবং প্রায় এক হাজার প্লাগইন) প্রায় 10 বছর এবং পর্যবেক্ষণ ঘটনা ঘটে occur

এটি এপিআই বা ভাষার বৈশিষ্ট্য বা এর মতো কোনও কিছুর মধ্যে যায় না বলে এটিও খানিকটা কম বিতর্কিত। এগুলি "ব্যয়" এর সাথে সম্পর্কিত যা "ব্যয়" না করে বিতর্ক সৃষ্টি করতে পারে এবং আমি "ব্যয়" করার দিকে মনোনিবেশ করতে চাই।

আলগা সমন্বয় এবং উত্তরাধিকার

আমি যা পর্যবেক্ষণ করেছি তা হল আলগা সমন্বয় এবং দীর্ঘ উত্তরাধিকারের ফলে প্রচুর পরিমাণে বর্জ্য বয়ে যায়।

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

আমরা একটি ফিজিক্স ইঞ্জিনকে ত্বরান্বিত করার জন্য কেডি ট্রি চাই, অন্য একটি নতুন পদার্থবিজ্ঞানের ইঞ্জিনের জন্য যা প্রায়শই পুরনোটির সাথে সমান্তরালে চলত, আমরা বিভিন্ন জাল অ্যালগরিদমের জন্য অজস্রের কয়েক ডজন বাস্তবায়ন করতাম, অন্য কেডি ট্রি রেন্ডারিংয়ের জন্য , বাছাই করা ইত্যাদি etc. ইত্যাদি all এগুলি অনুসন্ধানগুলিকে ত্বরান্বিত করার জন্য ব্যবহৃত সমস্ত বড়, বিশাল গাছ কাঠামো। প্রতিটি স্বতন্ত্র ব্যক্তি খুব গড় আকারের ইনপুটটির জন্য কয়েকশ মেগাবাইট মেমরি গিগা বাইটে নিতে পারেন। এগুলি সর্বদা তাত্ক্ষণিকভাবে ব্যবহার করা হয় নি এবং সর্বদা ব্যবহৃত হয় না তবে কোনও নির্দিষ্ট সময়ে 4 বা 5 টি একই সাথে স্মৃতিতে থাকতে পারে।

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

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

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

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

মেমরি দক্ষতা

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

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

সমাধান

আমার কাছে সমাধান হ'ল পণ্যগুলি তৈরির জন্য আরও সমন্বিত, ছোট দলগুলির সন্ধান করা, যারা তাদের "ব্যয়" সম্পর্কে নজর রাখতে পারে এবং একই জিনিসগুলিকে বারবার "ক্রয়" এড়াতে পারে।

মূল্য

আমি আরও বিতর্কিত "ব্যয়" পাশের দিকে ডুবব যেখানে একটি "ব্যয়" ঘটনাটি পর্যবেক্ষণ করেছি with যদি কোনও ভাষা কোনও অবজেক্টের জন্য অনিবার্য মূল্য ট্যাগ নিয়ে আসে (যেমন একটি যা রানটাইম প্রতিবিম্ব সরবরাহ করে এবং একটি সিরিজের জন্য ধারাবাহিক বরাদ্দ জোর করতে পারে না), তবে দামের ট্যাগটি খুব দানাদার উপাদানের প্রেক্ষিতে ব্যয়বহুল, একক Pixelবা Boolean

তবুও আমি প্রোগ্রামগুলির জন্য প্রচুর সোর্স কোড দেখতে পাই যা ভারী বোঝা পরিচালনা করে ( উদাহরণস্বরূপ: কয়েক হাজার থেকে কয়েক মিলিয়ন Pixelবা Booleanউদাহরণস্বরূপ) এমন ব্যয়বহুল স্তরে সেই মূল্য পরিশোধ করে।

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

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

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

অকাল অপটিমাইজেশন

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

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

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

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


2
প্রযুক্তিগত debtণ, অন্য কথায়। প্রযুক্তিগত debtণ যা কখনও পরিশোধ করা হয় না।
রবার্ট হার্ভে

1
রবার্ট ঠিক আছে। একটি লোকের কাছ থেকে একটি ভুল, দু'শটি ভুল --forceপরিচালকের দ্বারা চিত্কার করে "আপনি যদি আগামীকাল এটিকে বাস্তবায়ন না করেন তবে আপনাকে বরখাস্ত করা হবে" যা বছরের পর বছর ভাল সফ্টওয়্যার ইঞ্জিনিয়ারিং অনুশীলন, টিডিডি, ইউনিট টেস্টিং এবং কোনও মানবিক এবং বুদ্ধিমান প্রোগ্রামিং নীতিকে দূরে সরিয়ে দেয় , এছাড়াও আরও দু'বার আপনি ক্লান্ত হয়ে পড়েছিলেন .. সেই লোকটি যে কোম্পানিকে পাগল করে ফেলেছিল কারণ তাকে অকারণে ছাঁটাই করা হয়েছিল এবং কোডবেস গণ্ডগোল করেছে .. disc বন্ধ হওয়া লাইব্রেরিগুলি আপনি কখনই আপডেট করেননি ... এবং এখানে আপনার এটি রয়েছে: সুস্বাদু স্প্যাগেটি কোডবেস এবং স্ফীত সফ্টওয়্যার। বন ক্ষুধা
ব্যবহারকারী 3834459

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

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

1
খারাপ পুরানো দিনগুলিতে আমি গ্রাফিক্সের এপিআইগুলিকে বাইপাস করতে কিছু কোড প্রয়োগ করেছি এবং আমার কোডের একটি সমালোচনামূলক অংশের জন্য মেমরিতে সরাসরি পিক্সেল অ্যাক্সেস করেছি। বিমূর্ততা এবং সরাসরি অ্যাক্সেসের অনেক স্তরগুলির মধ্যে পার্থক্যটি ছিল 100x এর মতো কিছু, যা সেই দিনগুলিতে কম্পিউটারে গুরুত্বপূর্ণ ছিল। এখন আপনার কম্পিউটারগুলি যথেষ্ট দ্রুতগতির যে আপনি যদি কিছু করতে চান তবে যে কোনও পরিমাণ বিমূর্ততা ছাড়তে পারেন।
মাইকেল শপসিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.