জেভিএম বিকল্প -এসএসএস - এটি ঠিক কী করে?


229

এটি এখানে বলেছে যে - এক্সএসএস "থ্রেড স্ট্যাকের আকার সেট করতে" ব্যবহৃত হয়, এর অর্থ কী? কেউ কি আমাকে এটি বুঝতে সাহায্য করতে পারে?


এখানে কয়েকটি উদাহরণ (আমার নয় ...): হেরংগাং.com
ক্রিস্টোফ

উত্তর:


269

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


11
সুতরাং, -এক্সএস বিকল্পটি কোনও স্ট্যাক কত মেমোরি খরচ করে তা সীমাবদ্ধ করতে ব্যবহৃত হয় (রিটার্ন ঠিকানা, ভেরিয়েবল ইত্যাদি সঞ্চয় করে) এবং যা অপ্রত্যক্ষভাবে স্ট্যাকটি কত গভীর হতে পারে তা সীমাবদ্ধ করে দেয়? আমি কি সঠিক?
ইনস্ট্যান্টসেটসুনা

5
@ ইনস্ট্যান্টসেটসুনা: আমি মনে করি সম্ভবত বেশি সাধারণ ব্যবহার সম্ভবত ডিফল্ট সীমাবদ্ধতা বাড়িয়ে তুলবে । (সর্বদা একটি সীমা আছে।) তবে হ্যাঁ, আপনি স্ট্যাকের আকারটি নিয়ন্ত্রণ করছেন, যা স্ট্যাকটি কত গভীর হতে পারে তা নিয়ন্ত্রণ করে।
টিজে ক্রাউডার

আপনি জাভা সংকলক (ওরফে জাভাক) এ এই এক্সএসএস সেটিংসের সমতুল্য কীভাবে করবেন? এটি যারা স্কেল-ভিত্তিক লাইব্রেরি ব্যবহার করে যা ক্লাসগুলির সংকলনে বড় লেজ পুনরাবৃত্তি ঘটায় তাদের জন্য এটি একটি সমস্যা - অ্যান্ড্রু নরম্যান 9 সেকেন্ড আগে
অ্যান্ড্রু নরম্যান

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

@ অ্যান্ড্রু নরম্যান আপনি জেভিএম কনফিগারেশন ফ্ল্যাগ দিতে পারেন সংকলকটি -Jflagসিনট্যাক্স ব্যবহার করে চলতে হবে (যেমন run -J-Xss)।
ফ্র্যাঙ্কোসার

166

এটি প্রকৃতপক্ষে একটি JVM এ স্ট্যাকের আকার সেট করে।

আপনার এই দুটি অবস্থার যেকোন একটিতে এটি স্পর্শ করা উচিত:

  • স্ট্যাকওভারফ্লো এরির (স্ট্যাকের আকার সীমা ছাড়িয়ে বেশি), মান বাড়ান
  • আউটআম্মিরিওরির: নতুন নেটিভ থ্রেড তৈরি করতে অক্ষম (অনেকগুলি থ্রেড, প্রতিটি থ্রেডে একটি বড় স্ট্যাক রয়েছে), এটি হ্রাস করুন।

পরবর্তীটি সাধারণত আসে যখন আপনার এক্সএসএস খুব বড় সেট করা থাকে - তারপরে আপনাকে এটি ভারসাম্য বজায় রাখা দরকার (পরীক্ষা করা)


3
অগত্যা আসলে প্রতিটি সময়। SOE এবং OOM উভয়ই বিভিন্ন কারণে ঘটতে পারে যা আলাদাভাবে ঠিক করা উচিত।
নোয়েগো

4
সত্য, তবে আমি বলিনি - এক্স এসএসই এবং ওওমের একমাত্র কারণ, তবে অন্যভাবে - যদি ভুলভাবে সেট করা থাকে তবে এটি দুটির মধ্যে একটির কারণ হতে পারে।
আদম আদমাসেক

5

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


4

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

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