লোকেরা কেন বলে যে রুবি ধীর? [বন্ধ]


184

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

ইদানীং, আমি লোকদের বলতে শুনেছি যে রুবি নিজেই ধীর।

  • কেন রুবিকে ধীর বলে বিবেচনা করা হয়?

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

  • আপনি যদি এই "স্বচ্ছলতা" মোকাবেলা করতে চান তবে রুবি প্রোগ্রামার হিসাবে আপনার বিকল্পগুলি কী কী?

  • গতির সংকট এবং ট্র্যাফিক তীব্রতর যেখানে স্ট্রিং ওভারফ্লো এর মতো কোনও অ্যাপ্লিকেশনটি রুবির সবচেয়ে উপযুক্ত হবে?

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

পরিশেষে, আমি রুবি ২.০-তে খুব বেশি সংবাদ খুঁজে পাচ্ছি না - আমি তখনই গ্রহণ করি যে আমরা তখন থেকে কয়েক বছর দূরে আছি?




দুর্দান্ত উত্তরগুলি বাদে, তাদের কেউই সত্যিই কেন উত্তর দেয় না। আরও ভাল অন্তর্দৃষ্টিগুলি নাকিলনের দ্বারা উল্লিখিত সম্পর্কিত প্রশ্নে রয়েছে
আন্দ্রে

উত্তর:


184

কেন রুবিকে ধীর বলে বিবেচনা করা হয়?

কারণ আপনি যদি রুবি এবং অন্যান্য ভাষার মধ্যে আদর্শ মাপদণ্ড চালান, রুবি হারাবে।

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

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

মনে রাখবেন যে আপনার ওয়েব অ্যাপ্লিকেশনগুলিতে প্রচুর প্রসেসিং আসলে সি-তে বিকাশিত সফ্টওয়্যার দ্বারা সম্পন্ন হয় যেমন অ্যাপাচি, থিন, এনগিনেক্স, এসকিউলাইট, মাইএসকিউএল, পোস্টগ্রিসকিউএল, অনেকগুলি পার্সিং লাইব্রেরি, আরম্যাগিক, টিসিপি / আইপি, ইত্যাদি সি প্রোগ্রাম যা রুবি ব্যবহার করে । রুবি আঠালো এবং ব্যবসায়িক যুক্তি সরবরাহ করে।

আপনি যদি এই "স্বচ্ছলতা" মোকাবেলা করতে চান তবে রুবি প্রোগ্রামার হিসাবে আপনার বিকল্পগুলি কী কী?

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

গতির সংকট এবং ট্র্যাফিক তীব্রতর যেখানে স্ট্রিং ওভারফ্লো এর মতো কোনও অ্যাপ্লিকেশনটি রুবির সবচেয়ে উপযুক্ত হবে?

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

পরিশেষে, আমি রুবি ২.০-তে খুব বেশি সংবাদ খুঁজে পাচ্ছি না - আমি তখনই গ্রহণ করি যে আমরা তখন থেকে কয়েক বছর দূরে আছি?

বেশিরভাগ লোকেরা রুবি ১.৯.১ এর জন্য অপেক্ষা করছেন। আমি নিজে জেআরবিতে রুবি ১.৯.১ এ রিয়েলগুলি ৩.১ এর জন্য অপেক্ষা করছি।

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


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

1
হ্যাঁ, আপনি রুবি ২ থেকে কয়েক বছর দূরে ছিলেন, রুবি ২.০.০ ২৪ শে ফেব্রুয়ারী ২০১৩ এ মুক্তি
মরগান

3
রুবি ২.১ ব্যবহার করে আমার অভিজ্ঞতা হ'ল এটি রুবি ২.০ তে চলমান একই অ্যাপ্লিকেশনটির তুলনায় প্রায় 25% দ্রুত
ম্যাট কনললি

14
ভাষাগুলি ধীর বা দ্রুত নয়, তাদের বাস্তবায়ন, দোভাষী এবং
সংকলকগুলি হ'ল

122

সবার আগে, ধীরে ধীরে কিসের বিষয়ে ? সি? পাইথন? ধরা যাক কিছু নম্বর পেতেকম্পিউটার ভাষা benchmarks খেলা :

কেন রুবিকে ধীর বলে বিবেচনা করা হয়?

আপনি যাকে জিজ্ঞাসা করেন তার উপর নির্ভর করে। আপনাকে বলা যেতে পারে:

  • রুবি একটি ব্যাখ্যা করা ভাষা এবং অনুবাদিত ভাষাগুলি সংকলিত ভাষাগুলির তুলনায় ধীর হতে পারে
  • রুবি আবর্জনা সংগ্রহ ব্যবহার করে (যদিও সি #, যা আবর্জনা সংগ্রহও ব্যবহার করে, রুবি, পাইথন, পিএইচপি ইত্যাদির চেয়ে আরও দুটি অ্যালগরিদমিকের উপরে, কম স্মৃতি-বরাদ্দ-নিবিড় মানদণ্ডের উপরে দুটি অর্ডার আসে)
  • রুবি পদ্ধতির কলগুলি ধীরে ধীরে (যদিও, হাঁসের টাইপিংয়ের কারণে, তারা দৃ typ়ভাবে টাইপ করা ব্যাখ্যামূলক ভাষাগুলির চেয়ে তর্কাতীতভাবে দ্রুত হয়)
  • রুবি (জেআরবি বাদে) সত্য মাল্টিথ্রেডিং সমর্থন করে না
  • প্রভৃতি

কিন্তু, আবার, কি সম্মান দিয়ে ধীর? সি এর তুলনায় রুবি ১.৯ প্রায় পাইথন এবং পিএইচপি (একটি 3x পারফরম্যান্স ফ্যাক্টরের মধ্যে) হিসাবে দ্রুত (যত দ্রুত 300x পর্যন্ত হতে পারে), সুতরাং উপরের (থ্রেডিং বিবেচনার ব্যতীত, আপনার অ্যাপ্লিকেশনটি এই দিকটির উপর নির্ভর করে ) মূলত একাডেমিক।

আপনি যদি এই "স্বচ্ছলতা" মোকাবেলা করতে চান তবে রুবি প্রোগ্রামার হিসাবে আপনার বিকল্পগুলি কী কী?

স্কেলিবিলিটির জন্য লিখুন এবং এতে আরও হার্ডওয়্যার নিক্ষেপ করুন (যেমন মেমরি)

গতির সংকট এবং ট্র্যাফিক তীব্রতর যেখানে স্ট্রিং ওভারফ্লো এর মতো কোনও অ্যাপ্লিকেশনটি রুবির সবচেয়ে উপযুক্ত হবে?

ওয়েল, আরইই ( যাত্রীর সাথে মিলিত ) খুব ভাল প্রার্থী হবে।


1
আবর্জনা সংগ্রহ নিজেই অগত্যা ধীরে ধীরে হয় না, তবে এমআরআইয়ের আবর্জনা সংগ্রহ। আপনার যদি দ্রুত রুবি দরকার হয় তবে আপনি জেআরবি পাশাপাশি আরইইও দেখতে পারেন।
Andreas

1
@ আইগোই, সত্য, ২০০৮ এর মাঝামাঝি সময়টি চরম হতে পারে। আমি লিঙ্কগুলি আপডেট করেছি তবে তারা কয়েক মাসের মধ্যে পুরানো হয়ে যাবে। :) যেভাবেই হোক, হার্ডওয়্যার এবং কিছু প্যাচলেভেলগুলি ভিন্ন হতে পারে এবং কয়েকটি অতিরিক্ত পরীক্ষাও যুক্ত করা হয়েছিল, তবে জিনিসের বড় চিত্র পরিবর্তন হয়নি not
ভ্লাদর

11
>> परिमाणের একই ক্রমের মধ্যে << আপনি 7 বা বেঁচে থাকেন বা 69 বাঁচেন তবে এটি একই মাত্রার একই ক্রমের মধ্যে। এই পার্থক্যটি কি তুচ্ছ?
igouy

10
@ আইজি, আমি আপনার সম্পর্কে জানিনা, তবে মৃত্যুদন্ড কার্যকর করার গতির দিক দিয়ে আমার জীবনকাল পরিমাপ করার কোনও প্রোগ্রাম আমি নই। আমি মৃত্যুদন্ড কার্যকর করার গতি সম্পর্কে যেমন যত্ন করি না, যেমন HTTP প্রতিক্রিয়া রেন্ডারিং সময়। আমি জানি যে আমি 7ms এবং 69ms রেন্ডারিং সময়ের (যেমন 1330 মিমি নেটওয়ার্কের বিলম্বের উপরে যখন যাত্রা করি) এর মধ্যে পার্থক্যটি লক্ষ্য করব না। আমি জানি যে আমি 7ms এবং 700ms এর মধ্যে পার্থক্যটি লক্ষ্য করব এবং আমি অবশ্যই 7ms এবং 7s এর মধ্যে পার্থক্যটি লক্ষ্য করব - তবে না, 7ms এবং 69ms এর মধ্যে নয়।
ভ্লাদার

3
@ ভ্লাদার, the০ মাইল বা 700০০ মাইলের কী হবে? আপনি কি এই পার্থক্য লক্ষ্য করতে পারেন?
পল

60

রেলের স্রষ্টা, ডেভিড হেইনমিয়ার হ্যানসন যা বলেছিলেন তা এখানে:

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

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

রুবি 1.9 একটি 1.8 এর চেয়েও বেশি উন্নতি। রুবি ১.৮ এর সবচেয়ে বড় সমস্যাগুলি হ'ল এর ব্যাখ্যাযুক্ত প্রকৃতি (কোনও বাইকোড নেই, কোনও সংকলন নেই) এবং এই পদ্ধতি কলগুলি, রুবির অন্যতম সাধারণ ক্রিয়াকলাপ বিশেষত ধীর are

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

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


7
"সর্বোপরি, খুব কম লোক সি তে ওয়েব অ্যাপ্লিকেশন লেখেন" " - অবশ্যই না, তবে অনেকগুলি পারফরম্যান্স-সমালোচনামূলক ওয়েব সাইটগুলি উদাহরণস্বরূপ স্কালায় স্থানান্তরিত হয়েছিল।
দারিও

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

9
@ কিভেন: অবশ্যই উন্নয়ন ব্যয় হ্রাস পাবে? নইলে প্রথমে রুবিকে ব্যবহার করে কী লাভ হবে?
rjh

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

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

34

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


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

5
@ আজাক্স: নাহ, আমি বাজি ধরছি এটি আপনার বিজয়ী ব্যক্তিত্ব।
রাষ্ট্রপতি জেমস কে। পোলক

15
আমার রেকর্ডটি এখনও পর্যন্ত এক দিনের কাজের জন্য কোনও সংস্থাকে ,000 30,000 / বছর সাশ্রয় করছে। তাদের প্রকৌশলীরা সিদ্ধান্ত নিয়েছেন যে ক্লাউড কম্পিউটিং অ্যালগরিদম প্রতিটি পুনরাবৃত্তির উপর সম্পাদিত কাজগুলির সংখ্যা গণনা করা আরও পঠনযোগ্য, যার ফলে এন! 20,000+ ইউনিট কাজের সাথে কাজের বিষয়ে প্রশ্নগুলি। 1 টি কাজের জিনিস ফেলে রাখা হয়েছে কিনা তা পরীক্ষা করে এটিকে এন ক্যোয়ারিতে ফেলে দেওয়া হয়েছে এবং বিলটি 130 ডলার / দিন থেকে 20 ডলার করে দিন cut অলস কোডার আমাকে অর্থোপার্জন করে। দয়া করে আরও অলস কোডারকে উত্সাহ দিন।
আজাক্স

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

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

15

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


হ্যাঁ, আমি যা ভাবছিলাম, এর অর্থ, লোকেরা বলে যে এটি ধীর, তবে এটি এখনও আমার প্রয়োজনীয়তার জন্য দ্রুত
সাজাচ্ছে

11
>> এটি এখনও আমার প্রয়োজনীয়তার জন্য দ্রুত সুরক্ষা দেয় << এটি দ্রুত হওয়ার দরকার নেই এমন সমস্ত কিছুর পক্ষে যথেষ্ট দ্রুত :-)
আইগুই

আমি এটি সম্পর্কে আংশিক পক্ষপাতিত্ব করছি, সম্ভবত কক্সবাজার এটি একটি পুরানো মন্তব্য। এখন আমাদের রুবি ২.৩, এবং রুবি ২.২ এর অভিজ্ঞতা থেকে আমি দেখতে পেলাম যে রেলের স্ট্যাক ভারী। যদি একটি দ্রুত কাঠামোর প্রয়োজন হয়, পিড্রানো চেষ্টা করুন, এটি সিনাট্রা ভিত্তিক এবং তারা রেল কমান্ডের যতটা সম্ভব সম্ভব করার চেষ্টা করেছিল, তবে অনেক হালকা। তবে তারা এখনও 1.0 সংস্করণে পৌঁছায়নি, আরও আরও আসতে হবে, তবে আমার পরীক্ষা থেকে, এটি দুর্দান্ত এবং দ্রুত চলে। আমি এটিকে রেল থেকে ধার করা সক্রিয় রেকর্ড 5 এবং পিড্রানো স্প্রোকেট দিয়ে কাজ করেছি। 200 একযোগে সংযোগ সহ, আমি স্প্রিকেট থেকে সম্পদের সাথে ডিবি কোয়েরি ছাড়াই 1.5s প্রতিক্রিয়া পাচ্ছি
জেমস টান

5

সফটওয়্যারটিতে জোয়েল - রুবি পারফরম্যান্স পুনর্বিবেচিত এটি বেশ ভালভাবে ব্যাখ্যা করেছে। পুরানো হতে পারে যদিও ...

আপনি যেমন রেলকে রুবেল হিসাবে ব্যবহার করতে চান তেমনভাবেই এটির সাথে যুক্ত থাকার সুপারিশ করব,
যদি আপনি কখনও কোনও পারফরম্যান্সের সমস্যার মুখোমুখি হন তবে আপনি কোনও ভিন্ন ভাষা এবং কাঠামো ব্যবহার করতে পুনর্বিবেচনা করতে পারেন।

সেক্ষেত্রে আমি সত্যিই ASP.NET MVC 2 এর সাথে সি # সুপারিশ করব , সিআরইউডি অ্যাপ্লিকেশনগুলির জন্য খুব ভাল কাজ করে।


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

উদ্ধৃতি: " এটি প্রত্যেকের জন্য প্রযোজ্য নয়, তবে লোকেরা যখন রুবির সাথে পারফরম্যান্সের সমস্যা রয়েছে বা কোর রুবি ভাষার ইঞ্জিনটি চালাতে পারে তার চেয়ে তাদের দ্রুত কোড চালানো দরকার হবে, এটি করতে সহায়তা করে না রুবি বিকাশকারী চক্র বনাম সিপিইউ চক্র সম্পর্কে স্তবগান গাইবার পক্ষে। "
২৩7777

3

আমি বলব রুবি ধীরে ধীরে কারণ দোভাষীকে আরও দ্রুত তৈরি করতে খুব বেশি প্রচেষ্টা করা হয়নি। পাইথনের ক্ষেত্রেও একই প্রযোজ্য। স্মার্টটাক রুবি বা পাইথনের মতোই গতিশীল তবে একটি মাত্রার দ্বারা আরও ভাল পারফর্ম করে, দেখুন http://benchmarkgame.alioth.debian.org । যেহেতু স্মার্টটাক জাভা এবং সি # দ্বারা কম-বেশি প্রতিস্থাপন করা হয়েছিল (এটি কমপক্ষে 10 বছর আগে) এর জন্য আর কোনও পারফরম্যান্স অপ্টিমাইজেশনের কাজ করা হয়নি এবং স্মার্টটাক এখনও রুবি এবং পাইথনের চেয়ে আরও দ্রুত গতিময়। জেরক্স পার্কে এবং ওটিআই / আইবিএম-এর লোকেরা স্মল্টককে দ্রুত তৈরিতে কাজ করে এমন লোকদের অর্থ প্রদানের জন্য অর্থ ছিল। আমি যা বুঝতে পারি না তা হ'ল গুগল পাইথনের বড় দোকান হওয়ায় পাইথন দ্রুত তৈরি করার জন্য কেন অর্থ ব্যয় করে না। পরিবর্তে তারা গো এর মতো ভাষার উন্নয়নে অর্থ ব্যয় করে ...


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

আমি যা পড়েছি তা থেকে রুবি 2.5 তে ইতিমধ্যে ভাল ফলাফল পেয়েছে।
২৩7777

2

প্রথমত, আপনার পছন্দ মতো ভাষা সম্পর্কে অন্যেরা কী বলেন সে সম্পর্কে আপনার কি যত্ন নেই? এটি যখন কাজটি করতে হয় তখন তা ঠিক করে দেয়।

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

এটি সবই একটি পছন্দ।


2

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

একটি ছোট প্রকল্পের জন্য, আপনি কোনও ধীরগতি অনুভব করবেন না (যদিও আমি <50K ব্যবহারকারীদের পছন্দ না করে) দেওয়া হয়েছে যে কোডটিতে কোনও জটিল গণনা ব্যবহৃত হয় না, কেবল মূলধারার স্টাফ।

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

2014 সালে আপনি যে গতির পার্থক্যের বিষয়ে কথা বলছেন তা হ'ল বেশিরভাগ ওয়েবসাইটের জন্য তুচ্ছ।


2

ওয়েব অ্যাপ্লিকেশনে রুবির পারফরম্যান্সের সাথে মোকাবিলা করার উপায়টি অন্য কোনও প্রোগ্রামিং ভাষার সাথে একই:

স্থাপত্য

এটি অন্যান্য বেশিরভাগ ওয়েব ফ্রেমওয়ার্কের তুলনায় রেলগুলিতে করা সহজ।

অ্যাপ্লিকেশন পর্যায়ে , যা যা ধরা পড়বে তা ক্যাশে করে এবং বুদ্ধিমান উপায়ে ডিবিতে অ্যাক্সেস পরিচালনা করার মাধ্যমে (যেহেতু বিড়ম্বনটি বেশিরভাগ WEB অ্যাপ্লিকেশনের জন্য সাধারণত "ডিবি" অ্যাক্সেসে থাকে)।

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

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

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


1

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

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


তুলনাগুলি প্রায়শই জাভা, সি #, পাইথন, সি ++ এর চেয়ে পার্ল দিয়ে তৈরি করা হয়।
rjh

5
অবশ্যই. কিন্তু আমি আপনার যে মানুষ হবে (Tcl একটি ডেভেলপার হিসেবে) নিশ্চিত করতে পারি সবসময় অন্যায়ভাবে অন্যান্য ভাষায় সঙ্গে আপনি তুলনা করুন। সমাধানটি হ'ল সেই উপাদানগুলি যেগুলি আপনি একসাথে সেলাই করেন সেগুলির জন্য এই অন্যান্য ভাষা ব্যবহার করা; এক ভাষাতে এটি সব কিছু করা সমস্ত কাজের জন্য একটি একক সরঞ্জাম ব্যবহার করার মতো। আপনার সমস্ত কিছু যদি হাতুড়ি হয় তবে সবকিছু দেখতে থাম্বের মতো।
ডোনাল ফেলো

বিদেশী ভাষার মডিউলগুলি যখন প্রয়োজন তাদের ব্যবহার সম্পর্কে দুর্দান্ত ধারণা
স্টিফেন্মুরডোক

>> বলতে চাই যে যোগ্যতা ছাড়া "রুবি স্লো হয়" << বছর কয়েক আগে তারা চলে গেছে পারে রুবি প্রোগ্রাম Tcl প্রোগ্রাম চেয়ে :-) ধীর ছিল দেখানোর জন্য
igouy

1
মিথ্যা, জঘন্য মিথ্যা এবং বেঞ্চমার্ক সম্পর্কে তারা কী বলে তা আপনি জানেন। ;-)
ডোনাল ফেলো

0

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


0

লোকেরা বলে যে রুবি ধীর গতির কারণ তারা রুবি প্রোগ্রামগুলিকে অন্যান্য ভাষায় রচিত প্রোগ্রামগুলির সাথে তুলনা করে। আপনার লিখিত প্রোগ্রামগুলি দ্রুত হওয়ার দরকার নেই need সম্ভবত আপনি যে প্রোগ্রামগুলিতে রুবি লেখেন সেগুলির ক্ষেত্রে সমস্যাগুলি ধীর করে দেওয়ার কোনও বাধা নয় ।

জাভাস্ক্রিপ্ট ভি 8 এর তুলনায় রুবি ২.১

রুবি ২.১ সাধারণ লুয়ার তুলনায়

পাইথন 3 এর তুলনায় রুবি 2.1


-5

রুবি বিকাশকারী উত্পাদনশীলতার জন্য ভাল সম্পাদন করে। প্রকৃতির দ্বারা রুবি প্রকারভেদে অভাবের কারণে চালিত বিকাশের পরীক্ষা করে। সি লাইব্রেরিতে উচ্চ স্তরের মোড়ক হিসাবে ব্যবহার করার সময় রুবি ভাল অভিনয় করে। এটি যখন JVM বা Rbx VM এর মাধ্যমে JIT- দ্বারা মেশিন কোডে সংকলন করা হয় তখন রুবি দীর্ঘ চলমান প্রক্রিয়াগুলির সময়ও দুর্দান্ত কার্য সম্পাদন করে। খাঁটি রুবি কোড সহ অল্প সময়ে সংখ্যার ক্রাঞ্চ করার প্রয়োজন হলে রুবি ভাল সম্পাদন করে না।

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