জাভাস্ক্রিপ্ট ভি 8 গতি পেতে রুবি, পাইথনকে কী আটকাচ্ছে? [বন্ধ]


261

ভিবি ইঞ্জিনের এমন কোনও রুবি / পাইথন বৈশিষ্ট্য অপ্টিমাইজেশান (যেমন ইনলাইন ক্যাচিং ) বাস্তবায়নকে অবরুদ্ধ করছে?

পাইথন গুগল ছেলেরা সহ-বিকাশ করেছে তাই এটি সফ্টওয়্যার পেটেন্ট দ্বারা ব্লক করা উচিত নয়।

বা এটি গুগল দ্বারা ভি 8 প্রকল্পে রাখা সংস্থানগুলির বিষয়।


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

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

3
ভি 8 পাইথনের সাথে সমান নয়। আরও ভাল তুলনা করতে ভি 8 কে 1.8 জাভাস্ক্রিপ্ট স্পেস প্রয়োগ করতে হবে না পর্যন্ত অপেক্ষা করুন। এবং এই মুহুর্তে আমি নিশ্চিত যে কেউ জাভাস্ক্রিপ্টের জায়গায় ভি 8 ইঞ্জিনের উপরে পাইপাই প্রয়োগ করার চেষ্টা করবে।
মাইকেল ডিলন

14
আপনি কেন এতটা নিশ্চিত যে ভি 8 পাইথন বা রুবির চেয়ে দ্রুত? কিসের?
jcoffland

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

উত্তর:


519

জাভাস্ক্রিপ্ট ভি 8 গতি পেতে রুবি, পাইথনকে কী আটকাচ্ছে?

কিছুই নেই।

ভাল, ঠিক আছে: টাকা। (এবং সময়, মানুষ, সংস্থান, তবে আপনার যদি অর্থ থাকে তবে আপনি সেগুলি কিনতে পারেন))

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

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

ভিবি ইঞ্জিনের এমন কোনও রুবি / পাইথন বৈশিষ্ট্য অপ্টিমাইজেশান (যেমন ইনলাইন ক্যাচিং) বাস্তবায়নকে অবরুদ্ধ করছে?

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

আধুনিক রুবি বাস্তবায়ন ইতিমধ্যে অপ্টিমাইজেশনের একটি দুর্দান্ত কাজ করে। উদাহরণস্বরূপ, নির্দিষ্ট ক্রিয়াকলাপগুলির জন্য, রুবিনিয়াসের Hashক্লাসটি YARV এর চেয়ে দ্রুত। এখন, এটি মারাত্মক উত্তেজনাপূর্ণ শোনা যাচ্ছে না যতক্ষণ না আপনি বুঝতে পারবেন যে রুবিনিয়াসের Hashক্লাসটি 100% খাঁটি রুবিতে প্রয়োগ করা হয়েছে, যখন YARV এর 100% হ্যান্ড-অনুকূলিত সিতে প্রয়োগ করা হয়েছে is

সুতরাং, কমপক্ষে কিছু ক্ষেত্রে, রুবিনিয়াস জিসিসির চেয়ে আরও ভাল কোড তৈরি করতে পারে!

বা এটি গুগল দ্বারা ভি 8 প্রকল্পে রাখা সংস্থানগুলির বিষয়।

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

আসলে, ভি 8 এর শীর্ষস্থানীয় বিকাশকারী লারস বাক those প্রত্যেকটির সাথে আরও কয়েকজনকে নিয়ে কাজ করেছেন।


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

14
স্পাইডারমনকি তুলনামূলক পারফরম্যান্স করেছেন, মোজিলা তখন কীভাবে এটি করেছিলেন? তাদের খুব সীমিত অর্থ আছে ..
সালমান ভন আব্বাস

8
@ সালমানপিকে: এটি তাদের প্রথম ভিএম নয়, এবং মজিলায় স্মার্ট ব্যক্তিরাও কাজ করছেন।
ম্যাথিউ এম।

3
@ সালমানপিকে, মাইগুয়েল: মোজিলা তাদের জেএস ভিএম কমপক্ষে কিছুটা হলেও রিভার্সিং ইঞ্জিনিয়ারিং ভি 8 তৈরি করেছে। blog.mozilla.org/dmandelin/2010/09/08/presenting-jgarmonkey
আয়ান

2
@ আইএন ভি 8 হ'ল ওপেন সোর্স (বিএসডি লাইসেন্স), তাই প্রকৌশলীকে রিভার্স করার দরকার নেই, কেবল তারা কী করছে তা দেখুন।
dbkk

78

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

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

এর পার্শ্ব সুবিধাটি হ'ল আমাদের কাছে দুটি দুর্দান্ত উচ্চ পারফরম্যান্সের ওপেন সোর্স জাভাস্ক্রিপ্ট ইঞ্জিন রয়েছে যা নোড.জেএস এর মতো সমস্ত ধরণের অ্যাপ্লিকেশনগুলির জন্য পুনরায় তৈরি করা যেতে পারে are


43

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

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

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

পাইথনের গতিতে আরেকটি প্রতিবন্ধকতা পাইথন ৩। এটি গ্রহণ ভাষা বিকাশকারীদের মূল উদ্বেগ বলে মনে হয় - অন্য বাস্তবায়নগুলি ধরা না পারা পর্যন্ত তারা নতুন ভাষার বৈশিষ্ট্যগুলির হিমায়িত বিকাশ করেছে।

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

অনেকে আরও মনে করেন যে রুবি এবং পাইথন তাদের নিজ নিজ গ্লোবাল ইন্টারপ্রেটার লকগুলি অপসারণ করে প্রচুর উপকার পেতে পারে ।

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


3
আসলে পাইথন ৩.২ প্রকাশের পর থেকে নতুন বৈশিষ্ট্যগুলির স্থগিতাদেশ প্রত্যাহার করা হয়েছে।
জেডি।

2
+1, তবে নতুন ভাষার বৈশিষ্ট্যগুলিকে স্থির করে দেওয়া কি অপ্টিমাইজেশনে ব্যয় করার জন্য আরও বেশি সময় দেবে না?
অ্যান্ড্রু গ্রিম

1
@ অ্যান্ড্রু যদি হয় তবেই। জ্যথন, আয়রন পাইথন এবং পাইপিকে দ্রুত গতিতে নিয়ে আসা, লাইব্রেরিগুলিকে পাইথন 3 তে রূপান্তরিত করার জন্য এবং পাইথন 3 প্রচারের দিকে মনোনিবেশ করা হচ্ছে
রাফ কেটলার

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

1
আমি যেমন এটি বুঝতে পারি, ভি 8 হ'ল অনুবাদকের পরিবর্তে জেআইটি সংকলক ... আমি নিশ্চিত যে দুজনের মধ্যে কোনও পার্থক্য রয়েছে। হয়তো না ... জানি না।
লুক

24

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

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


13

বিভ্রান্তিকর প্রশ্ন। ভি 8 জাভা স্ক্রিপ্টের একটি জেআইটি (কেবল সময়ের সংকলক) বাস্তবায়ন এবং এর সর্বাধিক জনপ্রিয় নন-ব্রাউজার বাস্তবায়ন নোড.জেজে এটি ইভেন্ট লুপের চারপাশে নির্মিত। সিপিথন জেআইটি নয় এবং সন্নিবিষ্টও নয়। তবে পাইথন প্রকল্পগুলির মধ্যে পাইথনগুলিতে এগুলির উপস্থিতি রয়েছে - একটি সিপিথন ২.7 (এবং শীঘ্রই ).০++ হবে) সামঞ্জস্যপূর্ণ জেআইটি। এবং উদাহরণস্বরূপ টর্নেডোর মতো প্রচুর পরিমাণে সানডে সার্ভার লাইব্রেরি রয়েছে। পাইপাই চলমান টর্নেডো বনাম নোড.জেএস এর মধ্যে রিয়েল ওয়ার্ল্ড টেস্ট বিদ্যমান এবং পারফরম্যান্সের পার্থক্যগুলি সামান্য।


3
টর্নেডো উল্লেখ করার জন্য +1 । যদিও এটি নোড.জেএস এর সাথে তুলনামূলক গতিতে চলেছে, এর gen.engineমডিউলটি পাইথন জেনারেটর এবং yieldস্টেটমেন্টের সাথে ( যেহেতু 2.5! !!! আপনার
অ্যাসিনক্রোনাস

1
আপনার পোস্টের পর থেকে পাইপি একটি স্থিতিশীল 3.x সমর্থিত সংস্করণ প্রকাশ করেছে (এবং অবশ্যই সমর্থনটি উন্নত করে চলেছে
জেওগ্রাড

9

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

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


9

বিভিন্ন ডিজাইনের অগ্রাধিকার এবং ব্যবহারের ক্ষেত্রে লক্ষ্যগুলির কারণে goals

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

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

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

তাই বিভিন্ন অগ্রাধিকার এবং প্রেরণা।

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


5

অন্যান্য লোকেরা যেমন উল্লেখ করেছেন, পাইথনের পিআইপি আকারে একটি পারফরম্যান্ট জেআইটি সংকলক রয়েছে ।

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

আমি কোনও সুনির্দিষ্ট সিদ্ধান্তের দাবি করি না, তবে নোডের চেয়ে পাইপাই আমার কাছে দ্রুততম বাস্তবায়নের মধ্যে ছিল। পরিবর্তে সিপিথন ছিল র‌্যাঙ্কিংয়ের সবচেয়ে ধীর প্রান্তে।


5

বক্তব্যটি ঠিক সত্য নয়

ভি 8 যেমন জেএসের জন্য কেবল একটি বাস্তবায়ন, সিপথন পাইথনের জন্য কেবল একটি বাস্তবায়ন। পাইপির ভি 8 এর সাথে মিলে অভিনয় রয়েছে

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

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

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

তবে, রুবি এবং পাইথনের ডিফল্ট বাস্তবায়নগুলি ভি 8 এর মতো দ্রুত নয় কেন তার কয়েকটি কারণ they

অভিজ্ঞতা

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

সম্পদ

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

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

এটি যখন কাজ করে, এর অর্থ হল আপনার অগ্রাধিকার সম্পর্কে আপনাকে খুব সাবধানতা অবলম্বন করতে হবে। অতএব, এখন আমাদের তাকান প্রয়োজন:

উদ্দেশ্য

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

তবে ভি 8-তে, আপনি গতি পেয়েছেন।

এটি কারণ, গতি গুগলের মূল লক্ষ্য ছিল, যেহেতু এটি ক্রোমে পৃষ্ঠা রেন্ডারিংয়ের জন্য একটি বাধা।

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


1

যেহেতু জাভাস্ক্রিপ্ট প্রয়োগগুলি তাদের বাইন্ডিংগুলির পিছনে সামঞ্জস্যের যত্ন নেওয়ার দরকার নেই।

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

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

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


1

ভিআই 8 টি জেআইটি, ক্র্যাঙ্কশ্যাফ্ট, টাইপ ইনফারেন্সার এবং ডেটা-অপ্টিমাইজড কোডের কারণে দ্রুত। ট্যাগ পয়েন্টার, ডাবলস এর NaN- ট্যাগিং। এবং অবশ্যই এটি মাঝখানে সাধারণ সংকলক অপটিমাইজেশন করে।

সরল রুবি, পাইথন এবং পার্ল ইঞ্জিনগুলি সেগুলির কোনও একটিই করে না, কেবলমাত্র ছোট ছোট বেসিক অপ্টিমাইজেশন।

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

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


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