জাভা ভার্চুয়াল মেশিনে কেন জিআইএল নেই? পাইথনের এত খারাপ দরকার কেন?


177

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

উত্তর:


223

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

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


6
আলেক্স, জিআইএল অপসারণের পুরানো প্রয়াস সম্পর্কে কী, সেখানে ওখানে একটি টন ওভারহেড ছিল না (2 এর ফ্যাক্টরটি যা আমি স্মরণ করি)?
বার্তোসাদ রাদাকিজিস্কি

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

80
আনলাডেন গেলা টিম জিআইএল: কোড. google.com/p/unladen-swallow/wiki/…
Seun Osewa

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

50

জেভিএম (কমপক্ষে হটস্পট) "জিআইএল" এর সাথে একই রকম ধারণা ধারণ করে, এটি লক গ্রানুলারিটিতে কেবল আরও সূক্ষ্ম, এর বেশিরভাগই হটস্পটে জিসি থেকে আসে যা আরও উন্নত।

সিপিথনে এটি একটি বড় লক (সম্ভবত এটি সত্য নয়, তবে তর্ক করার পক্ষে যথেষ্ট ভাল), জেভিএম-এ এটি কোথায় ব্যবহৃত হয়েছে তার উপর নির্ভর করে বিভিন্ন ধারণা নিয়ে এটি আরও ছড়িয়ে পড়ে।

হটস্পট কোডে উদাহরণস্বরূপ, ভিএম / রানটাইম / সফেপয়েন্টিপ। Hpp দেখুন, যা কার্যকরভাবে একটি বাধা। একবার সাফপয়েন্টে পুরো ভিএম জাভা কোড সম্পর্কিত বন্ধ হয়ে গেছে, অনেকটা পাইথন ভিএম জিআইএল-এ থামে like

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

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


7

এই ব্লগ পোস্টে নীচে একটি মন্তব্য নীচে রয়েছে: http://www.grouplens.org/node/244 যা আয়রন পাইথন বা জাইথনের জন্য একটি জিআইএল-এর সাথে এত সহজ বিতরণ করার কারণ সম্পর্কে ইঙ্গিত দেয়, সিপিথন রেফারেন্স গণনা ব্যবহার করে তবে অন্য 2 ভিএমের আবর্জনা সংগ্রহকারী রয়েছে।

আমি কেন পাই না কেন এটির সঠিক যান্ত্রিকতা, তবে এটি একটি প্রশংসনীয় কারণ বলে মনে হচ্ছে।


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

0

এই লিঙ্কে তাদের নিম্নলিখিত ব্যাখ্যা রয়েছে:

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


-1

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


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