প্রোগ্রামিং ভাষার ধীর পারফরম্যান্স, আসলেই কোনও খারাপ জিনিস? [বন্ধ]


18

আমি এটি দেখতে কিভাবে এখানে।

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

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

সুতরাং, প্রোগ্রামিং ভাষার ধীর পারফরম্যান্স, সত্যই, একটি খারাপ জিনিস?


22
কোন পথে ধীর? সংকলন সময়, রানটাইম, লেখার সময়, অন্য কিছু মেট্রিক?
ম্যাট এলেন

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

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

2
@ ডেভিড: আমরা আমাদের সার্ভারে 512 গিগাবাইটের বেশি র্যাম পেতে পারি না, সুতরাং আমাদের আরও ভাল অ্যালগরিদম লিখতে হবে।
JBRWilkinson

2
বাধা কোথায় রয়েছে তার উপর নির্ভর করে। যদি প্রোগ্রামটি I / O 99.9% সময়ের জন্য অপেক্ষা করে তবে হস্তশিল্পের সমাবেশে লেখা থেকে যদি প্রোগ্রামটি নিজেই 10 গুণ ধীর হয় তবে তাতে কিছু আসে যায় না।

উত্তর:


50

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

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

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


আমি এটি "ধীর = খারাপ" বলিনি। তবুও, আপনার মতামত ভাগ করে নেওয়ার জন্য ধন্যবাদ।
ইমানুয়েল রুসেভ

9
+1 'দ্রুত পর্যাপ্ত' যখন বাস্তবায়ন হয় 'খুব ধীর হয় / তত দ্রুত নয়' ধীরে ধীরে খারাপ হয়। অন্য যে কোনও সময় তাতে কিছু আসে যায় না।
কर्क ব্রডহર્স্ট

4
+1 'যথেষ্ট দ্রুত'। আপনি যা করেন তার উপর নির্ভর করে প্রোগ্রামারটির সময় কার্যকর হওয়ার সময় সম্ভাব্য সঞ্চয়ের চেয়ে অনেক বেশি দামের হতে পারে।
জোনাস

3
@ জোনাস: এটি প্রায়শই ঘটে না, আপনি কেবল প্রোগ্রামারের বেতন দেখেন না; অ্যাপ্লিকেশনটি "আসুন, এটি যে কতটা কঠিন, আপনি বোকা সফ্টওয়্যারের স্তূপ" বলে চিৎকার করে ক্রল করায় ব্যবহারকারীরা হতাশায় তাদের মাথা ঝুলতে দেখছেন না। যদি তারা ধীর সফ্টওয়্যার ভি দ্রুত সফটওয়্যারটির টিসিও প্রকাশ করে - আপনি দেখবেন যে আপনার অগ্রাধিকারগুলি অবিলম্বে আপনার বিক্রয় বিভাগ পরিবর্তন করা হচ্ছে।
gbjbaanb

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

18

খুব সহজ - ধীর হওয়া খুব খারাপ জিনিস

যখন প্রোগ্রামটির একটি নির্দিষ্ট স্তরের কর্মক্ষমতা প্রয়োজন হয় requires

কারণ যে কর্মক্ষমতা ছাড়াই আপনি প্রয়োজনীয়তা পূরণ করছেন না।

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


2
.. এবং প্রায়শই প্রয়োজনীয়তাগুলি এক ধরণের
লিখিত

1
@ জেবিআরউইলকিনসন হ্যাঁ, বা যদি সিস্টেমটি খুব ধীর হয় তবে হঠাৎ করে নতুন কর্মক্ষমতা প্রয়োজনীয়তা উপস্থিত হবে;)
ব্রডহর্স্ট

12

এটিকে দেখুন: কম্পিউটারগুলি বোকা । ট্রিগ টেবিল সহ যে কোনও মরন অনুসরণ করতে পারে সেগুলি তারা দৃod়তার সাথে অনুসরণ করে। আপনি যা বলতে চেয়েছিলেন তার পরিবর্তে তারা যা বলতে চেয়েছিল তা করার বিষয়ে বাধা দেয়। স্ব-দিকনির্দেশ বা অন্তর্নিজ্ঞানের একটি ছিটে না। এটা ভয়ঙ্কর.

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

সুতরাং এমন একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যা (অন্যান্য ভাষার তুলনায়) শোষণে ব্যর্থ হয় যা কম্পিউটার ব্যবহারের একমাত্র সুবিধাটি অনুপস্থিত।


13
আপনি একটি গুরুত্বপূর্ণ বিটটি হারিয়ে ফেলছেন : কম্পিউটারগুলি বোকা, দ্রুত এবং অদম্য , অন্যদিকে ত্রুটিযুক্ত মানব। এবং অনেক ক্ষেত্রে এই অনুমানযোগ্যতা নিছক গতির চেয়ে অনেক বেশি গুরুত্বপূর্ণ।
এসকে-যুক্তি

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

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

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

2
তবুও যদি গতি (কার্যকরকরণের) চূড়ান্ত লক্ষ্য হয় তবে আমরা সকলেই মেশিন কোডে আমাদের প্রোগ্রামগুলি কেন লিখি না?
ইমানুয়েল রুসেভ

5

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


আপনার কি মনে হয় যে পিএইচপি-র মতো ধীর (চলমান শর্তাবলী) হিসাবে বিবেচিত ভাষাগুলি দ্রুত চালনার জন্য প্রয়োগ করা যেতে পারে?
ইমানুয়েল রুসেভ

1
কেউ জেন্ডার অপটিমাইজার?
ব্যবহারকারী 281377

আমাকে আরও অন্যভাবে জিজ্ঞাসা করা যাক - পিএইচপি বাস্তবায়নে এটি কী ধীর করে দেয়?
ইমানুয়েল রুসেভ

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

ফেসবুক দ্বারা শুরু করা হিপহপ সংকলক, পিএইচপি কে সি ++ কোডে অনুবাদ করতে পারে, তাই এটি সত্যিই দ্রুত।
JBRWilkinson

3

রান-টাইম, প্রাথমিক বিকাশের সময় এবং রক্ষণাবেক্ষণের সময় (ইস্যু / বাগগুলি পরিবর্তন করতে এবং নতুন কোড তৈরি করতে এবং এটি মোতায়েন করতে সময় নেওয়া) এর দিক দিয়ে গতি পরিমাপ করা যেতে পারে।

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

অতএব আপনার প্রয়োজনীয় গতির উপর নির্ভর করে অনেকগুলি ভারসাম্য।

প্রসঙ্গটিও গুরুত্বপূর্ণ। আপনার প্রাথমিক কনফিগারেশনটি 0.1 সেকেন্ডের পরিবর্তে 0.5 সেকেন্ড নেওয়া লোড করা কোনও বড় বিষয় নয়, তবে রানটাইমের সময়, 0.1 সেকেন্ডের পরিবর্তে কোয়েরি করতে 0.5 সেকেন্ড সময় নেওয়া যদি 100 প্রশ্নগুলি পরিচালনা করতে হয় তবে এটি সম্ভবত 50 সেকেন্ডের চেয়ে বেশি সময় নেয় 10।


100 মিমি কার্যকরভাবে ব্যবহারকারী উপলব্ধিতে তাত্ক্ষণিক। 500ms যথেষ্ট লক্ষণীয়। যদি ব্যবহারকারী প্রশ্নগুলি সম্পাদন করে থাকে তবে এটি কর্মপ্রবাহে একটি লক্ষণীয় পার্থক্য।
ডেভিড থর্নলি

3

সহজ - গ্রাহকরা দ্রুত সফ্টওয়্যার পছন্দ করেন। আসলে কম্পিউটারগুলির পুরো উদ্দেশ্যটি দ্রুত গণনা করা।


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

4
19 মিমি বনাম 15 এমএস কোনও পার্থক্য নাও করতে পারে তবে 500ms বনাম 300 মিমি নির্ধারিতভাবে করে এবং এটি একটি সফল পণ্য এবং একটি ব্যর্থতার মধ্যে পার্থক্য আনতে পারে।
নেমানজা ত্রিফুনোভিচ

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

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

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

3

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

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


3

প্রোগ্রামিং ভাষা প্রোগ্রামারদের পরিবেশন করার জন্য বিদ্যমান না থাকায় তারা ব্যবহারকারীর পরিবেশনার জন্য প্রোগ্রাম তৈরি করার উপস্থিতি রয়েছে

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

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


3

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

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

সুতরাং গতি অনেকগুলি সফ্টওয়্যারেই আসলে গুরুত্বপূর্ণ । ধীরে ধীরে ভাষা আজকাল "খারাপ" হিসাবে বিবেচিত হয় কারণ এগুলি সত্যই খুব ধীর (পাইথন সহজেই 50x থেকে 100x পর্যন্ত ধীর হতে পারে, এবং এটি খুব বেশি)


2

প্রোগ্রামিং ভাষা প্রোগ্রামারদের পরিবেশন করার জন্য বিদ্যমান।

আপনি কীভাবে এই সিদ্ধান্তে এসেছেন তা আমি জানি না। আমি বলতে হবে: সফ্টওয়্যার প্রকৌশলীরা ব্যবহার তাদের প্রয়োজনের জন্য প্রোগ্রামিং ভাষার।

কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজ অন্যদিকে ধীরে ধীরে হয় তবে এটির কারণ সেগুলিতে কিছু ভুল।

এটি একটি flakey বিবৃতি। এখানে 'ধীর' শব্দটি ব্যবহার করে আপনি কী বোঝাতে চেয়েছেন তা নির্ধারণ করুন। ধীরের অর্থ হতে পারে:

  1. চূড়ান্ত প্রোগ্রামগুলি, যা একই জিনিস অর্জন করে, অন্য ভাষার তুলনায় একটি ভাষায় 'ধীর' চালায়।
  2. চূড়ান্ত প্রোগ্রামটি তৈরি করতে সময়টি আরও দীর্ঘ হতে পারে (অতএব, কেউ কেউ এটিকে 'ধীর' হিসাবে বর্ণনা করবে)।

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


3
আপনি ঠিক বলেছেন যে "সফ্টওয়্যার ইঞ্জিনিয়াররা তাদের প্রয়োজনের জন্য প্রোগ্রামিং ভাষা ব্যবহার করেন"। এটি কেবলমাত্র "প্রোগ্রামার ভাষাগুলি প্রোগ্রামারদের পরিবেশন করার জন্য উপস্থিত রয়েছে" এই বিবৃতিটিকে সমর্থন করে।
ইমানুয়েল রুসেভ

1
আমি বলব: সফটওয়্যার ইঞ্জিনিয়াররা সমস্যা সমাধানের জন্য প্রোগ্রামিং ভাষা ব্যবহার করে (যা সাধারণত তাদের নিজস্ব নয়, তবে তাদের ক্লায়েন্টদের হয়)।
পিয়েটার তারেক

@ ইমানুয়েল: আমি বলব না "একটি হাতুড়ি একজন হস্তশিল্পী / মানবকে পরিবেশন করে", তবে একটি হাতুড়ি কোনও কাজ শেষ করার জন্য ব্যবহৃত হয় (যেমন হাতুড়ি পেরেক, আপনার পছন্দ না এমন কাউকে আঘাত করুন ইত্যাদি)। @ পিটার: আমি আশ্চর্য হয়েছি যে কত লোক কেবল '@ পিটার' লিখেন। তবে আপনি যদি সমস্ত কিছুর জন্য 'সমস্যা' শব্দটি মুদ্রণ করতে পারেন তবে আমার বক্তব্য কার্যকরভাবে সমার্থক বলে মনে করি।
জে কে

1

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

উদাহরণস্বরূপ ক্লাসিক এএসপি এবং এএসপি.net নিন।


1

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

তারা যখন স্কেল করার দরকার পড়ল তখন পিএইচপি খুব দ্রুত কাজ করতে তারা যে ঝামেলা করেছিল সে জন্য ফেসবুক দেখুন।

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

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

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


1

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


0

সুতরাং, প্রোগ্রামিং ভাষার ধীর পারফরম্যান্স, সত্যই, একটি খারাপ জিনিস?

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

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

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

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

কোন উপাদানগুলিতে উচ্চ-কার্যকারিতা চিকিত্সা করা উচিত? অপ্টিমাইজেশন? তাদের পরিমাপ করুন। তাদের প্রোফাইল দিন। অনুমান করার চেয়ে সত্যটি সন্ধান করুন। আপনার প্রচেষ্টাকে ফোকাস করুন যেখানে এটি সবচেয়ে ভাল কাজ করে।

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