GoGPT Best VPN GoSearch

فاویکون OnWorks

تک - آنلاین در ابر

اجرای مونو در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS

این دستور مونو است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


mono - تولید کننده کد بومی ECMA-CLI Mono (در زمان و پیش از زمان)

خلاصه


تک [گزینه ها] پرونده [استدلال...]

mono-sgen [گزینه ها] پرونده [استدلال...]

شرح


تک یک پیاده سازی زمان اجرا زیرساخت زبان مشترک ECMA است. این میتواند باشد
برای اجرای برنامه های ECMA و .NET استفاده می شود.

زمان اجرا شامل یک تولید کننده کد بومی است که Common Intermediate را تبدیل می کند
زبان به کد بومی

مولد کد می تواند در دو حالت کار کند: درست در زمان کامپایل (JIT) یا زودتر
تدوین زمان (AOT). از آنجایی که کد می تواند به صورت پویا بارگذاری شود، محیط زمان اجرا و
JIT همیشه وجود دارد، حتی اگر کد قبل از زمان کامپایل شده باشد.

زمان اجرا موارد مشخص شده را بارگذاری می کند پرونده و به صورت اختیاری عبور می کند استدلال به آن را پرونده
یک مونتاژ ECMA است. آنها معمولا یک پسوند .exe یا .dll دارند.

زمان اجرا تعدادی گزینه پیکربندی را برای اجرای برنامه‌های کاربردی فراهم می‌کند
توسعه و اشکال زدایی، و برای آزمایش و اشکال زدایی خود زمان اجرا.

La تک فرمان از زباله جمع کن محافظه کارانه بوهم استفاده می کند در حالی که mono-sgen فرمان
از زباله جمع کن متحرک و نسلی استفاده می کند.

قابلیت تحمل


در سیستم‌های مبتنی بر یونیکس، Mono مکانیزمی را برای شبیه‌سازی دسترسی به فایل‌های سبک ویندوز ارائه می‌کند.
این شامل ارائه نمای غیر حساس به حروف بزرگ و کوچک از سیستم فایل، جداکننده دایرکتوری است
نقشه برداری (از \ به /) و حذف حروف درایو.

این عملکرد با تنظیم فعال می شود MONO_IOMAP متغیر محیطی به یکی از
همه، راندن و مورد.

توضیحات را ببینید MONO_IOMAP در بخش متغیرهای محیطی برای جزئیات بیشتر.

زمان اجرا OPTIONS


گزینه های ذیل در دسترس هستند:

--aot, --aot[=گزینه ها]
این گزینه برای از پیش کامپایل کردن کد CIL در اسمبلی مشخص شده به native استفاده می شود
کد کد تولید شده در فایلی با پسوند .so ذخیره می شود. این فایل
زمانی که اسمبلی اجرا می شود به طور خودکار توسط زمان اجرا انتخاب می شود.
کامپایل پیش از زمان بسیار مفید است اگر از آن در ترکیب با استفاده کنید
-O=all,-shred flag که تمام بهینه‌سازی‌های موجود در تولیدکننده کد را فعال می‌کند
انجام شود. برخی از این بهینه سازی ها برای Just-in-Time عملی نیستند
گردآوری از آنجایی که ممکن است بسیار وقت گیر باشند. بر خلاف دات نت فریم ورک،
کامپایل پیش از زمان کد مستقل از دامنه تولید نمی کند: ایجاد می کند
همان کدی که کامپایلر Just-in-Time تولید می کند. از آنجا که بسیاری
برنامه ها از یک دامنه استفاده می کنند، این خوب است. اگر می خواهید بهینه سازی کنید
کد تولید شده برای استفاده در برنامه های چند دامنه ای، استفاده از -O=shared را در نظر بگیرید
پرچم. این روش ها را از قبل کامپایل می کند، اما مونتاژ اصلی هنوز مورد نیاز است
اجرا شود زیرا این یکی حاوی فراداده و اطلاعات استثنایی است که چنین نیست
در فایل تولید شده موجود است. هنگام پیش کامپایل کردن کد، ممکن است بخواهید کامپایل کنید
با تمام بهینه سازی ها (-O=all). کد از پیش کامپایل شده یک کد مستقل از موقعیت است.
پیش کامپایل فقط مکانیزمی برای کاهش زمان راه اندازی، افزایش اشتراک گذاری کد است
در چندین فرآیند تک و اجتناب از راه اندازی برنامه کامپایل به موقع
هزینه ها مونتاژ اصلی باید همچنان وجود داشته باشد، زیرا ابرداده موجود است
آنجا. کد AOT معمولاً نمی تواند از یک رایانه به رایانه دیگر منتقل شود (CPU-
بهینه‌سازی‌های خاصی که در زمان اجرا شناسایی می‌شوند) بنابراین نباید سعی کنید حرکت کنید
مجموعه های از پیش تولید شده یا مجموعه های از پیش تولید شده را برای
گسترش. چند گزینه به عنوان پارامتر در دسترس هستند --aot خط فرمان
گزینه. گزینه ها با کاما از هم جدا می شوند و می توان بیش از یک را مشخص کرد:

autorreg
کامپایلر AOT یک اولیه ساز کتابخانه (فقط ELF) را به صورت خودکار منتشر می کند
ماژول کامپایل شده aot را با زمان اجرا ثبت کنید. این فقط در مفید است
حالت استاتیک

به طرز عجیبی
به کامپایلر AOT دستور می دهد تا به جای یک شی، کد اسمبلی را خروجی کند
فایل.

نسخه bind-to-runtime
در صورت مشخص شدن، فایل های AOT تولید شده را مجبور می کند تا به زمان اجرا متصل شوند
نسخه کامپایل مونو. این از وجود فایل های AOT جلوگیری می کند
توسط یک زمان اجرا مونو متفاوت مصرف می شود. کامل این در حال حاضر یک
ویژگی تجربی چون کامل نیست. این به مونو دستور می دهد
کد پیش کامپایل که در طول تاریخ با AOT از پیش کامپایل نشده است.

مستقیم پینوک
هنگامی که این گزینه مشخص می شود، روش های P/Invoke مستقیماً به جای آن فراخوانی می شوند
از انجام عملیات جستجوی نماد سیستم عامل.

llvm-path=
همینطور برای ابزارهای llvm 'opt' و 'llc'.

mtriple=
از هدف سه گانه سبک گنو استفاده کنید برای تعیین تولید کد
گزینه ها، به عنوان مثال --mtriple=armv7-linux-gnueabi کدی را تولید می کند که هدف قرار می گیرد
ARMv7. این در حال حاضر فقط توسط باطن ARM پشتیبانی می شود. در حالت LLVM،
این سه گانه به کامپایلر LLVM llc منتقل می شود.

nimt-trampolines=[شماره]
هنگام کامپایل در حالت کامل aot، ترامپولین های IMT باید از قبل در آن ساخته شوند
تصویر AOT با این می توانید ترامپولین های روش دیگری اضافه کنید
بحث و جدل. پیش فرض 128 است.

نودباگ
به کامپایلر AOT دستور می دهد که هیچ گونه اطلاعات اشکال زدایی را خروجی ندهد.

بدون تماس مستقیم
این از کامپایلر AOT از ایجاد فراخوانی مستقیم به یک متد جلوگیری می کند.
کامپایلر AOT معمولاً برای متدهای خاصی فراخوانی مستقیم ایجاد می کند
نیازی به گذر از PLT نیست (مثلاً روش هایی که به آنها شناخته شده است
نیازی به یک قلاب مانند یک سازنده استاتیک ندارد) یا به داخل ساده فراخوانی کنید
تماس می گیرد

کوتوله
به کامپایلر AOT دستور می دهد تا اطلاعات اشکال زدایی DWARF را منتشر کند. هنگام استفاده
همراه با گزینه nodebug، فقط اطلاعات اشکال زدایی DWARF وجود دارد
منتشر می شود، اما نه اطلاعاتی که می توان در زمان اجرا استفاده کرد.

nrgctx-trampolines=[شماره]
هنگام کامپایل در حالت کامل aot، ترامپولین های اشتراک گذاری عمومی باید باشند
از قبل در تصویر AOT ایجاد شده است. شما می توانید با ترامپولین های روش اضافی اضافه کنید
این استدلال پیش فرض 1024 است.

ntrampolines=[شماره]
هنگام کامپایل در حالت کامل aot، ترامپولین های متد باید از قبل ساخته شوند
در تصویر AOT با این می توانید ترامپولین های روش دیگری اضافه کنید
بحث و جدل. پیش فرض 1024 است.

outfile=[نام فایل]
به کامپایلر AOT دستور می دهد تا خروجی را در فایل مشخص شده ذخیره کند.

روشهای پرینت
اگر کامپایلر AOT به هر دلیلی نتواند متدی را کامپایل کند، این کار را فعال کنید
flag متدهای پرش شده را به کنسول خروجی می دهد.

readonly-value=namespace.typename.fieldname=type/value
مقدار یک فیلد فقط خواندنی استاتیک را نادیده بگیرید. معمولاً در طول JIT
کامپایل، سازنده استاتیک مشتاقانه اجرا می شود، بنابراین ارزش یک استاتیک است
فیلد فقط خواندنی در زمان کامپایل شناخته شده است و کامپایلر می تواند یک عدد انجام دهد
بهینه سازی های مبتنی بر آن در طول AOT، در عوض، سازنده استاتیک
نمی توان اجرا کرد، بنابراین می توان از این گزینه برای تنظیم مقدار چنین فیلدی استفاده کرد
و همان مجموعه بهینه سازی ها را فعال کنید. نوع می تواند هر یک از i1، i2، i4 برای
اعداد صحیح از اندازه های مربوطه (بر حسب بایت). توجه داشته باشید که امضا / بدون امضا
اعداد در اینجا مهم نیست، فقط اندازه ذخیره سازی مهم است. این گزینه می تواند باشد
چندین بار مشخص شده است و از سازنده استاتیک برای جلوگیری نمی کند
نوع تعیین کننده فیلد برای اجرا با قوانین معمول در زمان اجرا
(از این رو احتمالاً مقدار متفاوتی برای فیلد محاسبه می شود).

صرفه جویی در زمان، نگه داشتن دمای
به کامپایلر AOT دستور می دهد تا فایل های موقت را نگه دارد.

اشکال زدایی نرم
این به کامپایلر دستور می دهد تا بررسی های نقطه توالی را ایجاد کند که اجازه می دهد
اشکال‌زدای نرم Mono برای اشکال‌زدایی برنامه‌ها حتی در سیستم‌هایی که چنین نیست
امکان تنظیم نقاط شکست یا تک مرحله ای (سخت افزار خاص
پیکربندی هایی مانند تلفن های همراه و کنسول های بازی ویدیویی).

ایستا یک فایل شی ELF (.o) یا فایل .s ایجاد کنید که بتوان به صورت ایستا پیوند داد
در هنگام جاسازی زمان اجرا مونو به یک فایل اجرایی. وقتی این گزینه است
استفاده می شود، فایل شی باید با استفاده از زمان اجرا تعبیه شده ثبت شود
تابع mono_aot_register_module که آرگومان خود را می گیرد
mono_aot_module_ نماد جهانی _info از فایل شی:

extern void *mono_aot_module_hello_info;

mono_aot_register_module (mono_aot_module_hello_info);

آمار چاپ آمارهای مختلف جمع آوری شده در طول کامپایل AOT.

threads=[شماره]
این یک گزینه آزمایشی برای کامپایلر AOT برای استفاده از چندین رشته است
هنگام کامپایل روش ها

tool-prefix=
آماده می کند به نام ابزارهای اجرا شده توسط کامپایلر AOT، به عنوان مثال
'as'/'ld'. برای مثال، --tool=prefix=arm-linux-gnueabi- AOT را می سازد
اجرای کامپایلر

نمادهای بنویس
به کامپایلر AOT دستور می دهد تا اطلاعات نماد اشکال زدایی را منتشر کند.

برای اطلاعات بیشتر در مورد AOT، نگاه کنید به: http://www.mono-project.com/docs/advanced/aot/

--attach=[گزینه ها]
در حال حاضر تنها گزینه پشتیبانی شده توسط این آرگومان خط فرمان است از کار انداختن که
عملکرد پیوست را غیرفعال می کند.

- پیکربندی نام فایل
فایل پیکربندی مشخص شده را به جای فایل(های) پیش فرض بارگیری کنید. به طور پیش فرض
فایل ها /etc/mono/config و هستند ~/.mono/config یا فایل مشخص شده در
متغیر محیطی MONO_CONFIG، در صورت تنظیم. را ببینید تک پیکربندی(5) صفحه مرد برای
جزئیات فرمت این فایل

--debugger-agent=[گزینه ها]
این به زمان اجرا مونو دستور می دهد تا یک عامل اشکال زدایی را در زمان اجرا مونو راه اندازی کند
و اتصال آن به یک رابط کاربری مشتری، فرآیند Mono را کنترل می کند. این
گزینه معمولاً توسط IDE ها مانند MonoDevelop IDE استفاده می شود.

پیکربندی با استفاده از یکی از گزینه های زیر مشخص می شود:

آدرس=میزبان:پورت
از این گزینه برای تعیین آدرس IP که سرویس گیرنده دیباگر شما در آن قرار دارد استفاده کنید
گوش دادن به.

loglevel=LEVEL
سطح گزارش تشخیصی را برای

logfile=نام فایل
برای تعیین فایلی که لاگ در آن ذخیره می شود، به طور پیش فرض استفاده می شود
خروجی استاندارد

سرور=[y/n]
پیش‌فرض به no، با گزینه پیش‌فرض Mono به طور فعال به آن متصل می‌شود
میزبان/پورت پیکربندی شده با نشانی گزینه. اگر آن را روی 'y' تنظیم کنید، آن را
به زمان اجرا Mono دستور می دهد تا اشکال زدایی را در حالت سرور شروع کند، جایی که Mono است
فعالانه منتظر می ماند تا قسمت جلویی دیباگر به فرآیند Mono متصل شود.
Mono چاپ می شود تا آدرس IP و پورت جایی که در حال گوش دادن است را مشخص کند.

setpgid=[y/n]
اگر روی بله تنظیم شود، Mono تماس می گیرد setpgid(0, 0) on راه اندازی if که تابع is
در دسترس on la سیستم. این is مفید برای حصول اطمینان از که سیگنال تحویل داده
به a روند که is اجرا کردن la اشکال زدایی هستند نه تکثیر به la
اشکال زدایی، به عنوان مثال چه زمانی Ctrl-C می فرستد ثبت نام به la SDB ابزار است.

suspend=[y/n]
به طور پیش فرض بله، با گزینه پیش فرض Mono vm را در هنگام راه اندازی به حالت تعلیق در می آورد
تا زمانی که با موفقیت به قسمت جلویی دیباگر متصل شود. اگر آن را تنظیم کنید
'n'، در ارتباط با سرور=y، به زمان اجرا Mono دستور می دهد تا به صورت اجرا شود
طبیعی است، در حالی که ابرداده ها را در حافظه پنهان ذخیره می کند تا به قسمت جلویی دیباگر ارسال شود
ارتباط..

transport=transport_name
این برای تعیین حمل و نقلی که دیباگر از آن استفاده خواهد کرد استفاده می شود
برقراری ارتباط. باید مشخص شود و در حال حاضر نیاز به این دارد
'dt_socket'.

--دسکتاپ
ماشین مجازی را به گونه ای پیکربندی می کند که برای برنامه های دسکتاپ مناسب تر باشد.
در حال حاضر این سیستم GC را طوری تنظیم می کند که تا حد امکان از گسترش پشته جلوگیری کند
به قیمت کاهش سرعت جمع آوری زباله.

-- full-aot
این یک پرچم آزمایشی است که به زمان اجرا Mono دستور می دهد هیچ کدام را تولید نکند
کد در زمان اجرا و منحصراً به کد تولید شده از استفاده از mono بستگی دارد
--aot=پیش از این پر شده است. این برای پلتفرم هایی که اجازه پویایی را نمی دهند مفید است
تولید کد توجه داشته باشید که این ویژگی در زمان اجرا اجرا را متوقف می کند اگر a
مسیر کد در برنامه شما، یا کتابخانه های کلاس Mono تلاش می کند کد تولید کند
به صورت پویا شما باید نرم افزار خود را از قبل تست کنید و مطمئن شوید که این کار را نمی کنید
از هر ویژگی پویا استفاده کنید

--gc=boehm, --gc=sgen
موتور جمع‌آوری زباله را برای استفاده از Mono، Boehm یا SGen انتخاب می‌کند. در حال حاضر
این صرفاً تضمین می کند که شما در حال اجرا هستید تک or mono-sgen دستورات
این پرچم را می توان در MONO_ENV_OPTIONS متغیر محیطی برای مجبور کردن همه
فرزند شما برای استفاده از یک نوع خاص از GC با زمان اجرا مونو پردازش می کند.

--کمک, -h
دستورالعمل های استفاده را نمایش می دهد.

--llvm اگر زمان اجرا مونو با پشتیبانی LLVM کامپایل شده باشد (در همه موجود نیست
تنظیمات)، Mono از موتور بهینه سازی LLVM و تولید کد استفاده می کند
JIT یا AOT کامپایل. برای اطلاعات بیشتر، مشورت کنید: http://www.mono-
project.com/docs/advanced/mono-llvm/

--nollvm
هنگام استفاده از Mono که با پشتیبانی LLVM کامپایل شده است، Mono را مجبور می کند
به موتور JIT خود بازگردید و از باطن LLVM استفاده نکنید.

--optimize=MODE, -O=MODE
MODE لیستی از بهینه سازی ها است که با کاما از هم جدا شده اند. آنها همچنین اجازه بهینه سازی را می دهند
با پیشوند نام بهینه سازی با علامت منفی خاموش شود. به طور کلی،
Mono برای استفاده از مجموعه پیش‌فرض پرچم‌ها تنظیم شده است، قبل از استفاده از این پرچم‌ها برای a
تنظیمات استقرار، ممکن است بخواهید واقعاً مزایای استفاده از آنها را اندازه گیری کنید.
پرچم‌های بهینه‌سازی زیر در موتور اصلی پیاده‌سازی می‌شوند:
حذف چک های محدود آرایه abcrem
همه همه بهینه‌سازی‌ها را روشن کنید
aot استفاده از کد کامپایل شده Ahead Of Time
بهینه سازی شعبه
cfold تا زدن ثابت
cmov حرکات شرطی [تک وابستگی]
deadce حذف کد مرده
conprop انتشار ثابت
copyprop انتشار کپی
fcmov Fast x86 FP مقایسه می‌کند [وابستگی به قوس]
float32 محاسبات شناور 32 بیتی را با استفاده از عملیات 32 بیتی انجام دهید
gshared اشتراک گذاری کد عمومی را فعال کنید.
فراخوانی روش درون خطی
intrins پیاده سازی روش ذاتی
خطی اسکن خطی تخصیص ثبت جهانی
برگ بهینه سازی رویه های برگ
حلقه بهینه سازی های مرتبط با حلقه
چشمی چشمی postpass
precomp قبل از اجرای Main همه متدها را از قبل کامپایل کنید
sched زمان بندی دستورالعمل
کد انتشار به ازای هر دامنه به اشتراک گذاشته شده است
دستورالعمل‌های sse2 SSE2 در x86 [وابستگی به قوس]
tailc بازگشت دم و تماس های دم
به عنوان مثال، برای فعال کردن تمام بهینه سازی ها به جز حذف کدهای مرده و درون ریزی،
شما می توانید استفاده کنید:
-O=all،-deadce،-inline
پرچم هایی که با [arch-dependency] علامت گذاری شده اند نشان می دهد که گزینه داده شده if
استفاده در ترکیب با کامپایل Ahead of Time (--aot flag) پیش از
کد کامپایل شده ای که به CPU فعلی بستگی دارد و ممکن است با خیال راحت به آن منتقل نشود
یک کامپیوتر دیگر

بهینه سازی های زیر پشتیبانی می شوند

32. شناور
درخواست می کند که زمان اجرا عملیات ممیز شناور 32 بیتی را با استفاده از آن انجام دهد
فقط 32 بیت به طور پیش‌فرض، Mono Runtime سعی می‌کند از بالاترین مقدار استفاده کند
دقت در دسترس برای عملیات ممیز شناور، اما در حالی که ممکن است
نتایج بهتری ارائه دهید، ممکن است کد کندتر اجرا شود. این گزینه نیز
بر روی کد تولید شده توسط باطن LLVM تأثیر می گذارد.

خطی کنترل می کند که آیا زمان اجرا باید به صورت درون خطی (پیش فرض) تلاش کند یا خیر
فراخوانی روش های درون خطی

--runtime=VERSION
Mono از نسخه های زمان اجرا مختلف پشتیبانی می کند. نسخه استفاده شده بستگی به برنامه دارد
که در حال اجرا یا روی فایل پیکربندی آن (با نام program.exe.config) است. این
می توان از گزینه برای نادیده گرفتن چنین تشخیص خودکار، با اجبار یک زمان اجرا متفاوت استفاده کرد
نسخه مورد استفاده توجه داشته باشید که این فقط باید برای انتخاب یک سازگار بعدی استفاده شود
نسخه زمان اجرا از نسخه ای که برنامه بر روی آن کامپایل شده است. یک استفاده معمولی است
برای اجرای یک برنامه 1.1 در نسخه 2.0:
mono --runtime=v2.0.50727 program.exe

--امنیت, --security=حالت
مدیر امنیتی را فعال کنید، یک ویژگی آزمایشی در حال حاضر در مونو و همینطور است
به طور پیش فرض خاموش است. تأیید کننده کد جدید را نیز می توان با این گزینه فعال کرد.

استفاده از امنیت بدون پارامتر معادل فراخوانی آن با "cas" است.
پارامتر.

حالت های زیر پشتیبانی می شوند:

core-clr
سیستم امنیتی core-clr را فعال می کند که معمولاً برای آن استفاده می شود
برنامه های Moonlight/Silverlight. امنیت بسیار ساده تری را فراهم می کند
سیستم از CAS را ببینید http://www.mono-project.com/docs/web/moonlight/ برای
جزئیات بیشتر و لینک به توضیحات این سیستم جدید.

معتبر
تأیید کننده جدید را فعال می کند و تأیید اولیه را برای اعتبار کد انجام می دهد.
در این حالت کد ناامن و P/Invoke مجاز است. این حالت یک را فراهم می کند
تضمین ایمنی بهتر است، اما همچنان ممکن است کد مدیریت شده خراب شود
تک

قابل تصدیق و تایید
تأیید کننده جدید را فعال می کند و تأیید کامل کد موجود را انجام می دهد
اجرا شده. این فقط اجازه می دهد تا کدهای قابل تأیید اجرا شود. کد ناامن است
مجاز نیست اما P/Invoke مجاز است. این حالت نباید به کد مدیریت شده اجازه دهد
تصادف مونو راستی‌آزمایی به‌اندازه استاندارد ECMA 335 سختگیرانه نیست
برای سازگاری با زمان اجرا MS.

سیستم امنیتی بر روی کد کاربر عمل می کند: کد موجود در mscorlib یا جهانی
حافظه پنهان اسمبلی همیشه قابل اعتماد است.

-- سرور
ماشین مجازی را به گونه ای پیکربندی می کند که برای عملیات سرور مناسب تر باشد
(در حال حاضر، یک مقدار اولیه threadpool سنگین تر را امکان پذیر می کند).

-- تأیید - همه
mscorlib و اسمبلی ها را در حافظه نهان اسمبلی سراسری برای IL معتبر و همه آنها تأیید می کند
کد کاربر برای تأیید پذیری IL.

این با --امنیتدر این گزینه قابل تأیید یا معتبر است
فقط کد کاربر را بررسی کنید و mscorlib و اسمبلی های واقع در سراسری را رد کنید
حافظه پنهان اسمبلی

-V, - نسخه
اطلاعات نسخه JIT (پیکربندی سیستم، شماره انتشار و شاخه) را چاپ می کند
اسامی در صورت وجود).

توسعه OPTIONS


گزینه های زیر برای کمک به هنگام توسعه یک برنامه JITed استفاده می شود.

- رفع اشکال, --debug=OPTIONS
حالت اشکال زدایی را در زمان اجرا روشن می کند. اگر یک اسمبلی با
با اشکال زدایی اطلاعات، اطلاعات شماره خط را برای ردیابی پشته تولید می کند.

آرگومان اختیاری OPTIONS لیستی از گزینه های اشکال زدایی جدا شده با کاما است.
این گزینه‌ها به‌طور پیش‌فرض خاموش هستند زیرا بسیار بزرگ‌تر و کندتر تولید می‌کنند
کد در زمان اجرا

گزینه های زیر پشتیبانی می شوند:

بازیگران هنگام پرتاب InvalidCastException یک خطای دقیق ایجاد می کند. این
گزینه باید فعال شود زیرا این کد در هنگام اجرا تولید می کند
زمان.

بهینه سازی های mdb
برخی از بهینه سازی های JIT را که معمولاً فقط هنگام اجرا غیرفعال می شوند غیرفعال کنید
داخل دیباگر اگر می خواهید به آن وصل کنید، این می تواند مفید باشد
اجرای فرآیند با mdb

gdb اطلاعات اشکال زدایی را با gdb تولید و ثبت کنید. این فقط پشتیبانی می شود
در برخی از سیستم عامل ها، و فقط در هنگام استفاده از gdb 7.0 یا بالاتر.

--پروفایل[=پروفایلر[:profiler_args]]
نمایه سازی را روشن می کند. برای اطلاعات بیشتر در مورد پروفایل برنامه ها و کد
پوشش، بخش های "پروفایلینگ" و "پوشش کد" را در زیر ببینید.

این گزینه را می توان چندین بار استفاده کرد، هر بار یک بارگذاری می شود
پروفایلر اضافی این به توسعه دهندگان اجازه می دهد تا از ماژول هایی استفاده کنند که JIT را گسترش می دهند
از طریق رابط پروفایل مونو.

--trace[=expression]
نام متدها را هنگام فراخوانی نشان می دهد. به طور پیش فرض همه روش ها ردیابی می شوند. را
ردیابی را می توان برای گنجاندن یا حذف متدها، کلاس ها یا مجموعه ها سفارشی کرد. آ
عبارت ردیابی یک لیست از اهداف جدا شده با کاما است که هر هدف را می توان پیشوند گذاشت
با علامت منفی برای خاموش کردن یک هدف خاص. کلمات «برنامه»، «همه» و
«معلول» معنای خاصی دارد. "برنامه" به برنامه اصلی اشاره دارد
اجرا شد، و «all» به معنای همه فراخوانی‌های متد است. از گزینه "غیرفعال" استفاده می شود
راه اندازی با ردیابی غیرفعال است. می توان آن را در زمان بعدی فعال کرد
با ارسال سیگنال SIGUSR2 به زمان اجرا برنامه ریزی کنید. مجموعه ها توسط
نام آنها، به عنوان مثال، برای ردیابی همه تماس ها در اسمبلی System، از موارد زیر استفاده کنید:

mono --trace=System app.exe

کلاس ها با پیشوند T: مشخص می شوند. به عنوان مثال، برای ردیابی همه تماس ها به
کلاس System.String، استفاده کنید:

mono --trace=T:System.String app.exe

و روش های فردی با پیشوند M: و روش استاندارد ارجاع می شوند
نشانه گذاری:

mono --trace=M:System.Console:WriteLine app.exe

استثناها را نیز می توان ردیابی کرد، باعث می شود هر بار یک ردیابی پشته چاپ شود
یک استثنا از نوع مشخص شده پرتاب می شود. نوع استثنا را می توان مشخص کرد
با یا بدون فضای نام، و برای ردیابی همه استثناها، «همه» را به عنوان علامت مشخص کنید
نام را تایپ کنید.

mono --trace=E:System.Exception app.exe

همانطور که قبلا ذکر شد، قوانین مختلفی را می توان به طور همزمان مشخص کرد:

mono --trace=T:System.String،T:System.Random app.exe

شما می توانید قطعات را حذف کنید، مثال بعدی فراخوانی ها را به System.String به جز برای ردیابی می کند
روش System.String:Concat.

mono --trace=T:System.String،-M:System.String:Concat

می توانید با استفاده از واجد شرایط wrapper، انتقال های مدیریت نشده را ردیابی کنید:

mono --trace=wrapper app.exe

در نهایت، فضاهای نام را می توان با استفاده از پیشوند N: مشخص کرد:

mono --trace=N:System.Xml

--no-x86-stack-align
فریم‌ها را روی معماری x86 تراز نکنید. به طور پیش فرض، Mono پشته را تراز می کند
فریم به 16 بایت در x86، به طوری که نقطه شناور محلی و متغیرهای SIMD می توانند
به درستی تراز شده است. این گزینه تراز را خاموش می کند که معمولاً یکی را ذخیره می کند
intruction در هر تماس، اما ممکن است منجر به کاهش قابل توجه ممیز شناور و
عملکرد SIMD

--jitmap
یک نقشه روش JIT در فایل /tmp/perf-PID.map ایجاد کنید. این فایل سپس استفاده می شود، برای
به عنوان مثال، توسط ابزار perf موجود در هسته های اخیر لینوکس. هر خط در فایل
دارای:

نام روش HEXADDR HEXSIZE

در حال حاضر این گزینه فقط در لینوکس پشتیبانی می شود.

JIT نگهدارنده OPTIONS


گزینه های نگهدارنده فقط توسط کسانی که زمان اجرا را توسعه می دهند استفاده می شود و نه
معمولاً مورد توجه کاربران یا توسعه دهندگان زمان اجرا است.

--زنگ تفريح روش
قبل از روشی که نام آن "متد" است، یک نقطه شکست درج می کند.
(namespace.class:methodname). از «Main» به عنوان نام متد برای درج یک نقطه شکست استفاده کنید
روش اصلی برنامه برای مثال، می توانید آن را با ژنریک ها نیز استفاده کنید
"System.Collections.Generic.Queue`1:Peek"

-- بریکونکس
یک نقطه انفصال روی استثناها درج می کند. این به شما امکان می دهد برنامه خود را با آن اشکال زدایی کنید
هنگامی که یک استثنا پرتاب می شود، یک دیباگر بومی.

--گردآوری نام
این یک متد (namespace.name:methodname) را کامپایل می کند که برای آزمایش استفاده می شود
عملکرد کامپایلر یا بررسی خروجی مولد کد.

--کامپایل
تمام متدها را در یک اسمبلی کامپایل می کند. این برای تست کامپایلر استفاده می شود
عملکرد یا بررسی خروجی مولد کد

--graph=TYPE روش
این یک فایل پست اسکریپت با یک نمودار با جزئیات در مورد مشخص شده تولید می کند
متد (namespace.name:methodname). این نیاز به «نقطه» و ghostview دارد
نصب شده است (انتظار دارد Ghostview "gv" نامیده شود). نمودارهای زیر هستند
در دسترس:
نمودار جریان کنترل cfg (CFG)
dtree Dominator Tree
کد CFG کد را نشان می دهد
ssa CFG کد را پس از ترجمه SSA نشان می دهد
Optcode CFG کد را پس از بهینه سازی IR نشان می دهد
برخی از نمودارها تنها در صورتی در دسترس خواهند بود که بهینه سازی های خاصی روشن باشند.

--ncompile
زمان اجرا را در مورد تعداد دفعاتی که متد توسط --compile مشخص کرده است آموزش دهید
(یا تمام متدها در صورت استفاده از --compileall) کامپایل شوند. این برای استفاده می شود
تست عملکرد مولد کد

--آمار
اطلاعات مربوط به کار انجام شده توسط زمان اجرا را در طول اجرای یک نمایش می دهد
نرم افزار.

--wapi=hps|semdel
انجام نگهداری از داده های به اشتراک گذاشته شده فرآیند. semdel جهانی را حذف می کند
سمافور hps دسته های استفاده شده در حال حاضر را فهرست می کند.

-v, -- پرحرف
سطح پرحرفی را افزایش می دهد، هر بار که فهرست می شود، پرحرفی را افزایش می دهد
سطحی برای گنجاندن اطلاعات بیشتر (از جمله، برای مثال، جداسازی قطعات
کد بومی تولید شده، اطلاعات انتخابگر کد و غیره).

ضمیمه کنید پشتیبانی


زمان اجرا مونو به فرآیندهای خارجی اجازه می دهد تا به یک فرآیند در حال اجرا متصل شوند و بارگذاری شوند
اسمبلی در برنامه در حال اجرا برای پیوست کردن به فرآیند، یک پروتکل خاص است
در مونتاژ Mono.Management پیاده سازی شده است.

با این پشتیبانی می توان مجموعه هایی را بارگیری کرد که دارای یک نقطه ورودی هستند (آنها هستند
ایجاد شده با -target:exe یا -target:winexe) تا در فرآیند Mono بارگذاری و اجرا شود.

کد در دامنه ریشه بارگذاری می شود و در زمان اجرا ویژه شروع به اجرا می کند
نخ را وصل کنید برنامه پیوست شده باید رشته های خود را ایجاد کند و پس از آن برگردد
فراخوانی

این پشتیبانی به عنوان مثال امکان اشکال زدایی برنامه ها را با اتصال پوسته csharp فراهم می کند
برای اجرای فرآیندها

نمایه سازی


زمان اجرا مونو شامل یک نمایه ساز است که می تواند برای بررسی عملکردهای مختلف استفاده شود
مشکلات مرتبط در برنامه شما نمایه ساز با عبور از --profile فعال می شود
آرگومان خط فرمان برای زمان اجرا مونو، فرمت آن به صورت زیر است:

--پروفایل[=پروفایلر[:profiler_args]]

Mono یک نمایه ساز داخلی به نام «پیش‌فرض» دارد (و همچنین در صورت عدم وجود آرگومان پیش‌فرض است
مشخص شده است)، اما توسعه دهندگان می توانند پروفایل های سفارشی بنویسند، به بخش "نمایه های سفارشی" مراجعه کنید.
برای جزئیات بیشتر.

اگر یک پروفایل مشخص نشده است، از نمایه ساز پیش فرض استفاده می شود. در profiler_args هست یک
رشته ای از گزینه های خاص پروفایلر برای خود پروفایلر. نمایه ساز پیش فرض می پذیرد
گزینه های زیر "تخصیص" به مصرف حافظه پروفایل توسط برنامه؛ 'زمان برای
مشخصات زمان صرف شده برای هر روال. 'jit' برای جمع آوری زمان صرف شده برای روش های کامپایل JIT
و 'stat' برای انجام پروفایل آماری نمونه. اگر هیچ گزینه ای ارائه نشده است
پیش فرض "تخصیص، زمان، جیت" است.

به‌طور پیش‌فرض، داده‌های نمایه در stdout چاپ می‌شوند: برای تغییر آن، از «file=filename» استفاده کنید.
گزینه ای برای خروجی داده ها به نام فایل. مثلا:

mono --profile program.exe

که برنامه را با پروفایلر پیش فرض اجرا می کند و زمان و تخصیص را انجام می دهد
پروفایل

mono --profile=default:stat,alloc,file=prof.out program.exe

نمونه پروفایل آماری و پروفایل تخصیص را در program.exe انجام خواهد داد. نمایه
داده ها در prof.out قرار داده شده است. توجه داشته باشید که پروفایلر آماری سربار بسیار کمی دارد و
باید پروفایلر ترجیحی برای استفاده باشد (برای خروجی بهتر از مسیر کامل مونو استفاده کنید
باینری هنگام اجرا و مطمئن شوید که ابزار addr2line را نصب کرده اید
بسته بینوتیل).

ورود کاربران پروفایلر


این پیشرفته ترین پروفایلر است.

مونو ورود به سیستم پروفایلر می تواند برای جمع آوری اطلاعات زیادی در مورد یک برنامه در حال اجرا استفاده شود
در زمان اجرا مونو این داده ها را می توان استفاده کرد (هم در حین اجرای فرآیند و هم در مراحل بعدی)
برای انجام تجزیه و تحلیل رفتار برنامه، تعیین استفاده از منابع، مسائل مربوط به عملکرد یا
حتی به دنبال الگوهای اجرایی خاص باشید.

این با ثبت رویدادهای ارائه شده توسط زمان اجرا مونو از طریق ثبت می شود
نمایه سازی رابط کاربری و نوشتن دوره ای آنها در فایلی که بعداً قابل بررسی است
با mprof-report(1) ابزار.

اطلاعات بیشتر در مورد نحوه استفاده از نمایه ساز گزارش در دسترس است mprof-report(1)
احتمال برد مراجعه کنید.

سفارشی پروفایلرها


Mono مکانیزمی را برای بارگذاری سایر ماژول های پروفایل فراهم می کند که به صورت اشتراکی هستند
کتابخانه ها این ماژول های پروفایل می توانند به بخش های مختلفی از زمان اجرا مونو متصل شوند
جمع آوری اطلاعات در مورد کد در حال اجرا

برای استفاده از نمایه ساز شخص ثالث، باید نام نمایه ساز را به Mono ارسال کنید، مانند این:

mono --profile=custom program.exe

در نمونه بالا، Mono نمایه ساز تعریف شده توسط کاربر را از کتابخانه مشترک بارگیری می کند
"mono-profiler-custom.so". این ماژول نمایه ساز باید در کتابخانه پیوند دهنده پویا شما باشد
مسیر.

فهرستی از دیگر پروفایل‌کنندگان شخص ثالث از وب‌سایت مونو (www.mono-) موجود است.
project.com/docs/advanced/performance-tips/)

پروفایل های سفارشی به صورت کتابخانه های مشترک نوشته می شوند. کتابخانه مشترک باید "مونو" نامیده شود
profiler-NAME.so» که در آن «NAME» نام نمایه ساز شما است.

برای نمونه ای از نحوه نوشتن پروفایل سفارشی خود به درخت منبع Mono برای in نگاه کنید
نمونه ها/پروفایلر.ج.

CODE پوشش


مونو با یک ماژول پوشش کد ارسال می شود. این ماژول با استفاده از Mono فعال می شود
گزینه --profile=cov. قالب این است: --profile=cov[:assembly-name[/namespace]] تست-
suite.exe

به‌طور پیش‌فرض پوشش کد برای همه مجموعه‌های بارگذاری شده پیش‌فرض خواهد بود، می‌توانید این را محدود کنید
تعیین نام اسمبلی، به عنوان مثال برای انجام پوشش کد در روتین های خود
استفاده از برنامه، برای مثال خط فرمان زیر پوشش کد را به روتین ها محدود می کند
در مونتاژ "دمو":

mono --profile=cov:demo demo.exe

توجه کنید که اسمبلی پسوند را شامل نمی شود.

می توانید با تعیین فضای نام، خروجی پوشش کد را محدودتر کنید:

mono --profile=cov:demo/My.Utilities demo.exe

که فقط پوشش کد را در اسمبلی و فضای نام داده شده انجام می دهد.

خروجی معمولی به صورت زیر است:

تحت پوشش: Class:.ctor ()
تحت پوشش نیست: کلاس: A ()
تحت پوشش نیست: راننده:.ctor ()
تحت پوشش نیست: Driver:method ()
پوشش جزئی: درایور: اصلی ()
افست 0x000a

آفست های نمایش داده شده، آفست های IL هستند.

یک ابزار پوشش قدرتمندتر در ماژول "monocov" موجود است. را ببینید monocov(1)
صفحه مرد برای جزئیات

اشکال زدایی ایدز


برای اشکال زدایی برنامه های مدیریت شده، می توانید از mdb دستور، یک دیباگر خط فرمان.

با ارسال عبارت می‌توان یک stack trace از تمام رشته‌های فعال در مونو به دست آورد
سیگنال QUIT به Mono، می توانید این کار را از خط فرمان انجام دهید، مانند زیر:

kill -QUIT pid

جایی که pid شناسه فرآیندی است که می‌خواهید بررسی کنید. روند خواهد شد
پس از آن به اجرا ادامه دهید، اما وضعیت آن تضمین نشده است.

مهم: این یک مکانیسم آخرین راه حل برای اشکال زدایی برنامه ها است و نباید باشد
برای نظارت یا بررسی یک برنامه تولید استفاده می شود. یکپارچگی زمان اجرا پس از
ارسال این سیگنال تضمینی نیست و ممکن است برنامه از کار بیفتد یا در هر صورت خاتمه یابد
امتیاز داده شده بعد

La --debug=casts می توان از گزینه برای دریافت اطلاعات دقیق تر برای Invalid Cast استفاده کرد
عملیات، اطلاعاتی در مورد انواع درگیر ارائه می دهد.

می‌توانید از متغیرهای محیطی MONO_LOG_LEVEL و MONO_LOG_MASK برای پرحرفی استفاده کنید
اشکال زدایی خروجی در مورد اجرای برنامه شما در Mono.

La MONO_LOG_LEVEL متغیر محیطی در صورت تنظیم، سطح ورود به سیستم به مجموعه تغییر می کند
مقدار. مقادیر ممکن عبارتند از "خطا"، "بحرانی"، "هشدار"، "پیام"، "اطلاعات"، "اشکال زدایی". در
مقدار پیش فرض "خطا" است. پیام‌هایی با سطح گزارش بیشتر یا مساوی با گزارش
سطح به stdout/stderr چاپ خواهد شد.

از "اطلاعات" برای ردیابی بارگذاری پویا مجموعه ها استفاده کنید.

استفاده از MONO_LOG_MASK متغیر محیطی برای محدود کردن میزان پیام هایی که دریافت می کنید: اگر
تنظیم، ماسک گزارش به مقدار تنظیم شده تغییر می کند. مقادیر ممکن "asm" (مونتاژ
loader)، "type"، "dll" (بارکننده کتابخانه بومی)، "gc" (جمع کننده زباله)، "cfg" (پیکربندی)
بارگذار فایل)، "aot" (پیش کامپایلر)، "امنیت" (به عنوان مثال پشتیبانی از Moonlight CoreCLR) و "همه".
مقدار پیش فرض "همه" است. تغییر مقدار ماسک به شما امکان می دهد فقط پیام ها را نمایش دهید
برای یک جزء خاص شما می توانید با جدا کردن آنها با کاما از چند ماسک استفاده کنید. مثلا
برای دیدن پیام‌های فایل پیکربندی و پیام‌های لودر اسمبلی، ماسک را روی "asm,cfg" تنظیم کنید.

موارد زیر یک کاربرد رایج برای ردیابی مشکلات P/Invoke است:

$ MONO_LOG_LEVEL="اشکال زدایی" MONO_LOG_MASK="dll" mono glue.exe

اشکال زدایی با LLDB


اگر از LLDB استفاده می کنید، می توانید از آن استفاده کنید mono.py اسکریپت برای چاپ برخی از داده های داخلی
ساختارها با آن برای استفاده از این، این را به خود اضافه کنید $HOME/.lldbinit فایل:
وارد کردن اسکریپت دستور $PREFIX/lib/mono/lldb/mono.py

جایی که $PREFIX مقدار پیشوندی است که هنگام پیکربندی Mono استفاده کردید (معمولا / usr).

پس از انجام این کار، می توانید برخی از ساختارهای داده Mono Runtime را بررسی کنید، به عنوان مثال:
(lldb) روش p

(MonoMethod *) $0 = 0x05026ac0 [mscorlib]System.OutOfMemoryException:.ctor()

سریال سازی


موتور سریال سازی XML Mono به طور پیش فرض از یک رویکرد مبتنی بر بازتاب استفاده می کند
سریال سازی که ممکن است برای پردازش مداوم کند باشد (برنامه های وب سرویس). در
موتور سریال‌سازی تعیین می‌کند که چه زمانی یک کلاس باید از سریال‌ساز تنظیم‌شده دستی بر اساس استفاده کند
چند پارامتر و در صورت نیاز یک سریال C# سفارشی برای انواع شما تولید می کند
در زمان اجرا سپس این سریال‌ساز سفارشی شده به صورت پویا در دستگاه شما بارگذاری می‌شود
نرم افزار.

می توانید این را با متغیر محیطی MONO_XMLSERIALIZER_THS کنترل کنید.

مقادیر ممکن هستند "نه" برای غیرفعال کردن استفاده از سریال‌ساز سفارشی‌شده C# یا یک
عدد صحیح که حداقل تعداد استفاده قبل از زمان اجرا است، یک سفارشی ایجاد می کند
سریال‌ساز (0 در اولین دسترسی یک سریال‌ساز سفارشی تولید می‌کند، 50 a را تولید می‌کند
سریال ساز در پنجاهمین استفاده). در صورتی که مونو به سریال‌ساز تفسیر شده بازگردد
تولید سریال ساز به نوعی شکست می خورد. این رفتار را می توان با تنظیم گزینه غیرفعال کرد
"نفت بک" (به عنوان مثال: MONO_XMLSERIALIZER_THS=0، nofallback).

محیط زیست متغیرها


GC_DONT_GC
جمع آوری زباله را در مونو خاموش می کند. این باید فقط برای اشکال زدایی استفاده شود
اهداف

LVM_COUNT
هنگامی که Mono با پشتیبانی LLVM کامپایل می شود، به زمان اجرا دستور توقف استفاده می دهد
LLVM پس از تعداد مشخصی از متدها JITed می شوند. این ابزاری است که در
تشخیص برای کمک به جداسازی مشکلات در باطن تولید کد. مثلا
LLVM_COUNT=10 فقط 10 متد را با LLVM کامپایل می کند و سپس به Mono تغییر می دهد
موتور JIT. LLVM_COUNT=0 موتور LLVM را به طور کلی غیرفعال می کند.

MONO_AOT_CACHE
اگر تنظیم شود، این متغیر به Mono دستور می دهد تا مونتاژهای جدید را زودتر جمع آوری کند
درخواست کنید و نتیجه را در یک کش ذخیره کنید ~/.mono/aot-cache.

MONO_ASPNET_INHIBIT_SETTINGSMAP
Mono دارای ویژگی است که اجازه می دهد تنظیمات را در فایل های .config تغییر دهید
با Mono با استفاده از نقشه‌بردارهای بخش پیکربندی ارسال می‌شود. نقشه برداران و نقشه برداری
قوانین در فایل $prefix/etc/mono/2.0/settings.map و به صورت اختیاری در فایل تعریف شده است.
فایل settings.map موجود در دایرکتوری سطح بالای برنامه ASP.NET شما.
هر دو فایل در هنگام راه‌اندازی برنامه توسط System.Web خوانده می‌شوند، اگر در آن یافت شوند
بالاتر از مکان ها اگر نمی خواهید نقشه برداری انجام شود، می توانید این را تنظیم کنید
متغیر در محیط شما قبل از شروع برنامه و هیچ اقدامی نخواهد بود
گرفته شده.

MONO_ASPNET_WEBCONFIG_CACHESIZE
Mono یک کش از اشیاء ConfigSection برای افزایش سرعت WebConfigurationManager دارد
پرس و جوها اندازه پیش‌فرض آن 100 مورد است و در صورت نیاز به موارد بیشتر، حافظه پنهان را ذخیره کنید
اخراج ها شروع می شود اگر اخراج ها خیلی مکرر باشد، این امر می تواند تحمیل شود
سربار غیر ضروری، که با استفاده از این متغیر محیطی قابل اجتناب است
اندازه کش بالاتری را تنظیم کنید (یا با کاهش آن نیاز به حافظه را کاهش دهید).

MONO_CAIRO_DEBUG_DISPOSE
اگر تنظیم شود، باعث می شود که Mono.Cairo هنگام تخصیص اشیا، ردپای پشته را جمع آوری کند، بنابراین
که اخطارهای نهایی/دور شامل اطلاعات مربوط به نمونه است
اصل و نسب.

MONO_CFG_DIR
اگر تنظیم شود، این متغیر دایرکتوری تنظیمات پیش‌فرض سیستم را لغو می‌کند
($PREFIX/etc). برای مکان یابی فایل machine.config استفاده می شود.

MONO_COM
سبک interop COM را تنظیم می کند. اگر مقدار این متغیر "MS" باشد از Mono استفاده می شود
روال‌های marhsalling رشته‌ای از liboleaut32 برای کتابخانه نوع BSTR، هر
مقادیر دیگر از مارشالینگ رشته ای BSTR تک ساخته استفاده می کنند.

MONO_CONFIG
اگر تنظیم شود، این متغیر فایل پیکربندی زمان اجرا پیش‌فرض را لغو می‌کند
($PREFIX/etc/mono/config). گزینه های خط فرمان --config را لغو می کند
متغیر محیطی.

MONO_CPU_ARCH
مکانیسم تشخیص خودکار cpu را نادیده بگیرید. در حال حاضر فقط روی بازو استفاده می شود. در
فرمت مقدار به صورت زیر است:

"armvV [شست[2]]"

که در آن V معماری شماره 4، 5، 6، 7 است و گزینه ها می توانند در حال حاضر باشند
"thumb" یا "thumb2". مثال:

MONO_CPU_ARCH="armv4 thumb" مونو ...

MONO_ARM_FORCE_SOFT_FLOAT
هنگامی که Mono با یک بازگشت شناور نرم روی ARM ساخته می شود و این متغیر روی آن تنظیم می شود
"1"، Mono همیشه کد شناور نرم را منتشر می کند، حتی اگر یک واحد VFP شناسایی شود.

MONO_DISABLE_AIO
اگر تنظیم شود، به mono می‌گوید از سرویس‌های ورودی/خروجی ناهمزمان بومی استفاده نکند. در آن
در این مورد، اجرای انتخاب/نظرسنجی پیش‌فرض استفاده می‌شود. در حال حاضر فقط epoll() است
پشتیبانی.

MONO_DISABLE_MANAGED_COLLATION
اگر این متغیر محیطی "بله" باشد، زمان اجرا از دسته بندی مدیریت نشده استفاده می کند (که
در واقع به معنای عدم تطبیق حساس به فرهنگ است). مدیریت داخلی را غیرفعال می کند
قابلیت collation از طریق اعضای System.Globalization.CompareInfo فراخوانی شده است
کلاس Collation به طور پیش فرض فعال است.

MONO_DISABLE_SHM
Unix only: در صورت تنظیم، فایل‌های حافظه مشترک مورد استفاده برای دسته‌های پردازش متقابل را غیرفعال می‌کند:
فرآیند فقط دسته های خصوصی دارد. این بدان معناست که دسته های فرآیند و رشته هستند
برای فرآیندهای دیگر در دسترس نیست، و mutexes نامگذاری شده، رویدادها نامگذاری شده و نامگذاری شده است
سمافورها بین فرآیندها قابل مشاهده نیستند. این نیز می تواند توسط فعال شود
به طور پیش فرض با عبور گزینه "--disable-shared-handles" برای پیکربندی. این است
پیش فرض از mono 2.8 به بعد.

MONO_DISABLE_SHARED_AREA
Unix only: در صورت تنظیم، استفاده از حافظه مشترک را برای نمایش عملکرد غیرفعال کنید
شمارنده ها این بدان معنی است که خواندن عملکرد هر دو به صورت خارجی امکان پذیر نخواهد بود
شمارنده از این فرآیندها یا خواندن فرآیندهای خارجی.

MONO_DNS
هنگامی که تنظیم می شود، استفاده از یک حل کننده DNS کاملاً مدیریت شده را به جای معمولی فعال می کند
توابع libc هنگامی که چندین کوئری در آن اجرا می شود، این حل کننده بسیار بهتر عمل می کند
موازی.

توجه داشته باشید که /etc/nsswitch.conf نادیده گرفته خواهد شد

MONO_EGD_SOCKET
برای پلتفرم هایی که در غیر این صورت راهی برای به دست آوردن بایت های تصادفی ندارند، این می تواند
به نام سوکت سیستم فایلی که یک شبح egd یا prngd در آن قرار دارد تنظیم شود
استماع.

MONO_ENABLE_SHM
فقط یونیکس: پشتیبانی از دسته های متقابل را فعال کنید. دسته های متقابل فرآیند هستند
برای افشای دسته‌های فرآیند، دسته‌های رشته، mutexeهای نام‌گذاری شده، رویدادهای نام‌گذاری شده و
سمافورها در سراسر فرآیندهای یونیکس نامگذاری شده است.

MONO_ENV_OPTIONS
این متغیر محیطی به شما اجازه می دهد تا آرگومان های خط فرمان را به یک Mono منتقل کنید
فرآیند از طریق محیط زیست این مفید است برای مثال به زور همه شما
برای استفاده از LLVM یا SGEN بدون نیاز به تغییر اسکریپت های راه اندازی، Mono پردازش می کند.

MONO_ENV_OPTIONS
برای ارسال گزینه های اضافی به عامل دیباگر در زمان اجرا استفاده می شود، همانطور که بودند
با استفاده از --debugger-agent= ارسال شد.

MONO_EVENTLOG_TYPE
نوع ارائه دهنده گزارش رویداد را برای استفاده (برای System.Diagnostics.EventLog) تنظیم می کند.
مقادیر ممکن عبارتند از:

محلی[:path]
گزارش‌های رویداد و ورودی‌های سیستم فایل محلی را ادامه می‌دهد. دایرکتوری در
که برای تداوم گزارش های رویداد، منابع رویداد و ورودی ها را می توان مشخص کرد
به عنوان بخشی از ارزش اگر مسیر به طور صریح تنظیم نشده باشد، به طور پیش فرض روی آن تنظیم می شود
"/var/lib/mono/eventlog" در یونیکس و "%APPDATA%no\ventlog" در ویندوز.

win32 شما با استفاده از la بومی win32 API به نوشتن حوادث و ثبت واقعه سیاهههای مربوط و واقعه
منابع موجود در رجیستری این فقط در ویندوز موجود است. در یونیکس،
مجوز دایرکتوری برای گزارش رویدادهای فردی و دایرکتوری های منبع رویداد
روی 777 تنظیم شده است (با بیت +t) که به همه اجازه می دهد گزارش رویداد را بخوانند و بنویسند
ورودی‌ها در حالی که فقط اجازه می‌دهند ورودی‌ها توسط کاربر(های) حذف شوند
آنها را ایجاد کرد

تهی بی‌صدا هر رویدادی را کنار می‌گذارد.

پیش‌فرض در یونیکس (و نسخه‌های ویندوز قبل از NT) "null" و روی "win32" است
ویندوز NT (و بالاتر).

MONO_EXTERNAL_ENCODINGS
اگر تنظیم شده باشد، حاوی فهرستی از رمزگذاری‌های متن جدا شده با دو نقطه است که باید هنگام چرخش امتحان کنید
متن تولید شده خارجی (مثلاً آرگومان های خط فرمان یا نام فایل ها) در یونیکد.
نام های رمزگذاری از لیست ارائه شده توسط iconv و مورد خاص آمده است
"default_locale" که به رمزگذاری پیش‌فرض محلی فعلی اشاره دارد.

هنگام خواندن رشته های متنی تولید شده خارجی ابتدا UTF-8 امتحان می شود و سپس این
لیست به ترتیب با اولین تبدیل موفقیت آمیز که جستجو را به پایان می رساند امتحان می شود.
هنگام نوشتن متن خارجی (به عنوان مثال نام فایل های جدید یا آرگومان های فرآیندهای جدید)
اولین مورد در این لیست یا UTF-8 اگر متغیر محیطی تنظیم نشده باشد استفاده می شود.

مشکل استفاده از MONO_EXTERNAL_ENCODINGS برای پردازش فایل های شما این است که آن را انجام می دهد
منجر به یک مشکل می شود: اگرچه امکان دریافت نام فایل مناسب وجود ندارد
لزوما امکان باز کردن فایل وجود دارد. به طور کلی اگر مشکل دارید با
کدگذاری در نام فایل های خود باید از برنامه "convmv" استفاده کنید.

MONO_GC_PARAMS
هنگام استفاده از Mono با زباله گرد SGen، این متغیر چندین مورد را کنترل می کند
پارامترهای کلکتور مقدار متغیر یک لیست جدا شده با کاما است
کلمات.

nursery-size=اندازه
اندازه مهد کودک را تعیین می کند. اندازه بر حسب بایت مشخص شده و باید a باشد
قدرت دو پسوندهای "k"، "m" و "g" را می توان برای تعیین کیلو استفاده کرد،
به ترتیب مگا و گیگابایت مهد کودک نسل اول (از
دو). یک مهدکودک بزرگتر معمولاً برنامه را سرعت می بخشد، اما بدیهی است
از حافظه بیشتر استفاده کنید اندازه پیش فرض مهد کودک 4 مگابایت.

رشته =جمع کننده مشخص می کند که از کدام کلکتور اصلی استفاده شود.
گزینه‌ها عبارتند از "marksweep" برای مجموعه Mark&Sweep و "marksweep-conc"
برای Mark&Sweep همزمان. گردآورنده غیرهمزمان Mark&Sweep است
به طور پیش فرض

soft-heap-limit=اندازه
هنگامی که اندازه پشته بزرگتر از این اندازه شد، از اصلی پیش فرض چشم پوشی کنید
متریک ماشه جمع‌آوری می‌گوید و فقط چهار اندازه مهد کودک را مجاز می‌داند
رشد توده ای بین مجموعه های اصلی

تخلیه-آستانه=آستانه
آستانه تخلیه را بر حسب درصد تنظیم می کند. این گزینه فقط در دسترس است
کلکسیونرهای اصلی Mark&Sweep مقدار باید یک عدد صحیح در محدوده باشد
0 تا 100. پیش فرض 66 است. اگر مرحله sweep مجموعه پیدا شود
که اشغال یک نوع هیپ بلوک خاص کمتر از این است
درصد، یک مجموعه کپی برای آن نوع بلوک در بعدی انجام می دهد
مجموعه اصلی، در نتیجه اشغال را به نزدیک به 100 درصد بازگرداند. آ
مقدار 0 تخلیه را خاموش می کند.

(نه-) تنبل- جارو
جابجایی تنبل را برای مجموعه Mark&Sweep فعال یا غیرفعال می کند. در صورت فعال بودن،
جارو کردن تک تک بلوک های پشته اصلی به صورت تکه تکه انجام می شود
نیاز به وجود می آید، معمولا در طول مجموعه های مهد کودک. جارو کردن تنبل فعال است
به صورت پیش فرض.

(بدون-)روی همزمان
جابجایی همزمان را برای مجموعه Mark&Sweep فعال یا غیرفعال می کند. اگر
فعال شود، تکرار تمام بلوک های اصلی برای تعیین اینکه کدام یک می توانند باشند
آزاد شده و کدام یک باید نگهداری و جارو شوند، همزمان با آن انجام می شود
برنامه در حال اجرا جارو کردن همزمان به طور پیش فرض فعال است.

stack-mark=حالت علامت گذاری
نحوه اسکن رشته های برنامه را مشخص می کند. گزینه‌ها «دقیق» هستند
و "محافظه کار". علامت گذاری دقیق به جمع کننده اجازه می دهد تا از چه مقادیری مطلع شود
در پشته ارجاع هستند و چه چیزهایی نیستند. علامت گذاری محافظه کارانه همه را تهدید می کند
مقادیر به عنوان ارجاعات بالقوه و دست نخورده رها کنید. علامت گذاری دقیق
زباله های شناور را کاهش می دهد و می تواند جمع آوری و تخصیص مهد کودک را تسریع بخشد
سرعت، جنبه منفی آن این است که به حافظه اضافی قابل توجهی نیاز دارد
روش کامپایل شده گزینه مناسب، متأسفانه، نیاز به آزمایش دارد.

save-target-ratio=نسبت
نسبت ذخیره هدف را برای کلکتور اصلی مشخص می کند. جمع کننده اجازه می دهد
مقدار معینی از حافظه برای ارتقاء از مهد کودک به دلیل جزئی
مجموعه ها قبل از راه اندازی یک مجموعه بزرگ. این مقدار بر اساس
انتظار دارد چقدر حافظه آزاد شود. به عنوان نسبتی از اندازه نشان داده می شود
از پشته پس از یک مجموعه بزرگ. مقادیر معتبر بین 0.1 و 2.0 هستند.
پیش فرض 0.5 است. مقادیر کوچکتر اندازه پشته اصلی را کوچکتر نگه می دارد
اما مجموعه های اصلی بیشتری را راه اندازی خواهد کرد. به همین ترتیب، از مقادیر بزرگتر استفاده می شود
حافظه بیشتر و منجر به مجموعه های اصلی کمتر می شود. این گزینه است
تجربی، بنابراین ممکن است در نسخه‌های بعدی مونو ناپدید شود.

default-allowance-ratio=نسبت
کمک هزینه تخصیص پیش فرض را زمانی که اندازه محاسبه شده نیز باشد مشخص می کند
کم اهمیت. کمک هزینه تخصیص مقدار حافظه ای است که جمع کننده اجازه داده است
قبل از راه اندازی یک مجموعه بزرگ تبلیغ شد. این نسبت مهد کودک است
اندازه. مقادیر معتبر بین 1.0 و 10.0 هستند. پیش فرض 4.0 است. کوچکتر
مقادیر منجر به انبوه‌های کوچک‌تر و مجموعه‌های اصلی بیشتر می‌شوند. به همین ترتیب،
مقادیر بزرگتر به پشته اجازه می دهد تا سریعتر رشد کند اما زمانی که از حافظه بیشتری استفاده می کند
به اندازه پایدار می رسد. این گزینه EXPERIMENTAL است، بنابراین ممکن است ناپدید شود
در نسخه های بعدی مونو.

جزئی =جمع آوری کننده جزئی
مشخص می کند که از کدام کلکتور فرعی استفاده شود. گزینه ها "ساده" هستند که ترویج می کند
همه اشیاء از مهد کودک به طور مستقیم به نسل قدیمی و "شکاف"
که اجازه می دهد شی قبل از تبلیغ برای مدت طولانی تری در مهد کودک بماند.

تخصیص نسبت =نسبت
نسبت حافظه مهد کودک را برای استفاده توسط فضای تخصیصی مشخص می کند.
این فقط می تواند با جمع کننده کوچک تقسیم شده استفاده شود. مقادیر معتبر هستند
اعداد صحیح بین 1 و 100. پیش فرض 60 است.

ترفیع-سن=سن
سن مورد نیاز یک شی را که باید قبل از آن به داخل مهد کودک برسد مشخص می کند
به نسل قدیم ارتقا یافته است. این فقط می تواند با استفاده از
جمع کننده کوچک تقسیم مقادیر معتبر اعداد صحیح بین 1 و 14 هستند. پیش فرض
2 است

(بدون) سیمان
سیمان کاری را فعال یا غیرفعال می کند. این می تواند به طور چشمگیری مهد کودک را کوتاه کند
زمان‌های جمع‌آوری در برخی از معیارها که به اشیاء پین‌شده اشاره می‌شود
از پشته اصلی

MONO_GC_DEBUG
هنگام استفاده از Mono با زباله گرد SGen این متغیر محیطی می تواند باشد
برای روشن کردن ویژگی های مختلف اشکال زدایی کلکتور استفاده می شود. ارزش این
متغیر لیستی از کلمات است که با کاما از هم جدا شده اند. از این گزینه ها در استفاده نکنید
تولید.

عدد سطح اشکال زدایی را روی عدد مشخص شده تنظیم می کند.

کمک هزینه چاپ
بعد از هر مجموعه بزرگ، مصرف حافظه را برای قبل و بعد چاپ می کند
مجموعه و کمک هزینه برای جمع آوری جزئی، یعنی چقدر
توده مجاز است از مجموعه های فرعی قبل از اصلی بعدی رشد کند
مجموعه فعال می شود.

چاپ سنجاق
آمار کلاس هایی را که اشیاء آنها در مهد کودک سنجاق شده اند جمع آوری می کند
و برای آنها ورودی های تنظیم مجدد مجدد اضافه شده است. وقتی آن آمار را چاپ می کند
خاموش شدن.

جمع آوری قبل از تخصیص

چک در-مجموعه های جزئی
این یک بررسی سازگاری در مجموعه های کوچک انجام می دهد و همچنین پاک می کند
مهد کودک در زمان جمع آوری، به جای پیش فرض، زمانی که بافرها هستند
اختصاص داده شده (clear-at-gc). بررسی سازگاری تضمین می کند که هیچ وجود ندارد
ارجاعات عمده به جزئی که در مجموعه های به یاد ماندنی نیستند.

mod-union-consistency-check
چک می کند که جدول کارتی mod-union قبل از هر اتمام یکسان است
مکث مجموعه اصلی این چک فقط برای رشته های همزمان قابل اجرا است
گردآورندگان

چک مارک بیت ها
چک‌هایی که بیت‌ها را در پشته اصلی علامت‌گذاری می‌کنند، در انتهای هر کدام یکسان هستند
مجموعه اصلی بیت های علامت ثابت به این معنی است که اگر یک شی علامت گذاری شده باشد،
تمام اشیایی که به آنها ارجاع دارد نیز باید علامت گذاری شوند.

چک-مهد کودک-پین شده
بعد از مجموعه های مهد کودک و قبل از شروع مجموعه های همزمان، بررسی کنید
اینکه آیا همه اشیاء مهد کودک سنجاق شده اند یا نه - بسته به
متن نوشته. وقتی از کلکتور اسپلیت مهد کودک استفاده می شود کاری انجام نمی دهد.

xdomain-check
بررسی می کند تا مطمئن شود هیچ مرجعی برای بارگیری نشده باقی نمانده است
AppDomain.

ایجاد شفاف در صفحه
هنگامی که بافر تخصیص محلی نخ بافر می شود، مهد کودک را به تدریج پاک می کند
(TLAB) ایجاد می شود. تنظیم پیش فرض کل مهد کودک را در GC پاک می کند
زمان.

debug-clear-at-tlab-creation
هنگامی که بافر تخصیص محلی نخ بافر می شود، مهد کودک را به تدریج پاک می کند
(TLAB) ایجاد می شود، اما در زمان GC آن را با بایت «0xff» پر می کند، که
اگر «clear-at-tlab-creation» اینطور نباشد، باید سریعتر منجر به خرابی شود
به درستی کار می کنند.

clear-at-gc
این کار مهد کودک را در زمان GC پاک می‌کند، به‌جای اینکه این کار را در زمان محلی بودن موضوع انجام دهد
بافر تخصیص (TLAB) ایجاد می شود. پیش فرض این است که مهد کودک را در
زمان ایجاد TLAB

غیرفعال کردن - جزئی
مجموعه های جزئی را انجام ندهید. اگر مهد کودک پر باشد، یک مجموعه بزرگ است
در عوض فعال می شود، مگر اینکه آن نیز غیرفعال باشد.

disable-major
مجموعه های بزرگ را انجام ندهید.

محافظه کار-stack-mark
GC را مجبور می کند تا پشته را به طور محافظه کارانه اسکن کند، حتی اگر اسکن دقیق باشد
در دسترس نیست.

تخصیص دهنده بدون مدیریت
تخصیص دهنده مدیریت شده را غیرفعال می کند.

بررسی-اسکن-شروع می شود
در صورت تنظیم، قبل و بعد از هرکدام یک بررسی معقولیت در scan_starts انجام می دهد
مجموعه

verify-nursery-at-minor-gc
در صورت تنظیم، در شروع هر یک از مهد کودک یک حرکت کامل با شی انجام می دهد
مجموعه جزئی

dump-nursery-at-minor-gc
در صورت تنظیم، محتویات مهد کودک را در شروع هر خردسال تخلیه می کند
مجموعه. نیاز به تنظیم verify-nursery-at-minor-gc دارد.

heap-dump=پرونده
محتویات پشته را به فایل مشخص شده تخلیه می کند. برای تجسم کردن
اطلاعات، از ابزار mono-heapviz استفاده کنید.

باینری-پروتکل=پرونده
خروجی اشکال زدایی را به فایل مشخص شده خروجی می دهد. برای این کار، مونو
باید با تعریف BINARY_PROTOCOL در sgen-gc.c کامپایل شود. تو می توانی
سپس از این دستور برای بررسی خروجی استفاده کنید
sgen-grep-binprot 0x1234 0x5678 < فایل

مهد کودک-قناری
در صورت تنظیم، اشیاء اختصاص داده شده در مهد کودک با پسوند قناری (نگهبان) اضافه می شوند.
کلمه، که در هر مجموعه جزئی بررسی می شود. می توان برای شناسایی/اشکال زدایی استفاده کرد
انبوه مسائل فساد

نهایی نکن
در صورت فعال بودن، نهایی کننده ها اجرا نمی شوند. همه چیز بی‌تأثیر خواهد بود:
اشیاء نهایی همچنان در صف نهایی سازی جایی که هستند قرار می گیرند
زنده بمانند تا زمانی که قرار است نهایی شوند. زمانی که در صف نباشند
دیگر آنها به طور منظم جمع آوری خواهند شد.

لاگ نهایی کننده ها
برای کمک به اشکال زدایی، به طور کامل در فرآیند نهایی سازی وارد شوید.

MONO_GAC_PREFIX
پیشوندی را ارائه می‌کند که زمان اجرا برای جستجوی حافظه پنهان مجمع عمومی استفاده می‌کند. دایرکتوری ها
توسط جداکننده مسیر پلت فرم (دونقطه روی یونیکس) از هم جدا می شوند. MONO_GAC_PREFIX
باید به دایرکتوری بالای یک نصب پیشوند اشاره کند. یا به دایرکتوری
در دستور gacutil /gacdir ارائه شده است. مثال:
/home/username/.mono:/usr/local/mono/

MONO_IOMAP
برخی از پشتیبانی از بازنویسی نام فایل را فعال می کند تا به برنامه هایی که بد نوشته شده اند کمک کند
مسیرهای ویندوز با کد سخت یک لیست جدا شده از "درایو" برای نوار کردن درایو را تنظیم کنید
حروف، یا "حروف کوچک" برای انجام تطبیق فایل های حساس به حروف بزرگ و کوچک در هر دایرکتوری در a
مسیر. "all" همه روش های بازنویسی را فعال می کند. (همیشه بک اسلش ها نگاشت می شوند
اگر این متغیر روی یک گزینه معتبر تنظیم شده باشد، اسلش می شود).
به عنوان مثال، این از پوسته کار می کند:

MONO_IOMAP=drive:case
صادرات MONO_IOMAP

اگر از mod_mono برای میزبانی برنامه های وب خود استفاده می کنید، می توانید از آن استفاده کنید MonoIOMAP
دستورالعمل در عوض، مانند این:

MonoIOMAP همه

دیدن mod_mono(8) برای جزئیات بیشتر.

علاوه بر این. Mono شامل یک ماژول پروفایل است که به شما امکان می دهد آنچه را ردیابی کنید
تنظیمات مسیرهای فایل که کد IOMAP باید انجام دهد. کد رهگیری گزارش می دهد
مکان مدیریت شده (ردیابی پشته کامل) که تماس IOMAP-ed از آنجا برقرار شد و، در
خروج از فرآیند، مکان هایی که تمام رشته های IOMAP-ed در مدیریت شده ایجاد شده اند
کد گزارش اخیر فقط تقریبی است زیرا همیشه امکان پذیر نیست
محل واقعی ایجاد رشته را تخمین بزنید. کد از ساده استفاده می کند
اکتشافی - ردیابی پشته را که به محل تخصیص رشته منتهی می شود تجزیه و تحلیل می کند
و تمام کدهای مدیریت شده را که در مجموعه های نصب شده در GAC نیز وجود دارد نادیده می گیرد
مانند کتابخانه‌های کلاسی که با Mono ارسال می‌شوند (از آنجایی که فرض می‌شود فاقد آن هستند
مسائل حساسیت به حروف بزرگ). سپس اولین مکان در کد کاربر را گزارش می دهد -
در بیشتر موارد این محل تخصیص رشته یا بسیار نزدیک به آن خواهد بود
موقعیت. کد گزارش به عنوان یک ماژول پروفایل سفارشی پیاده سازی شده است (نگاه کنید به
بخش "PROFILING") و به روش زیر قابل بارگیری است:

mono --profile=iomap yourapplication.exe

با این حال، توجه داشته باشید که Mono در حال حاضر تنها از یک ماژول پروفایلر در یک زمان پشتیبانی می کند.

MONO_LLVM
هنگامی که Mono از باطن تولید کد LLVM استفاده می کند، می توانید از این محیط استفاده کنید
متغیر برای ارسال گزینه های تولید کد به کامپایلر LLVM.

MONO_MANAGED_WATCHER
اگر روی "غیرفعال" تنظیم شود، System.IO.FileSystemWatcher از یک ناظر فایل استفاده می کند
پیاده سازی که بی سر و صدا تمام درخواست های تماشا را نادیده می گیرد. اگر روی هر تنظیم شده باشد
مقدار دیگر، System.IO.FileSystemWatcher از مدیریت پیش فرض استفاده می کند
اجرا (کند). اگر تنظیم نشود، mono سعی می کند از inotify، FAM، Gamin، kevent استفاده کند
تحت سیستم‌های یونیکس و فراخوان‌های بومی API در ویندوز، به حالت مدیریت‌شده بازمی‌گردند
پیاده سازی روی خطا

MONO_MESSAGING_PROVIDER
Mono از یک مدل پلاگین برای پیاده سازی System.Messaging آن پشتیبانی می کند
امکان پشتیبانی از انواع پیاده سازی های پیام رسانی (مانند AMQP، ActiveMQ).
برای تعیین اینکه کدام پیاده سازی پیام قرار است از متغیر evironment استفاده شود
باید روی نام کامل کلاس برای ارائه دهنده تنظیم شود. به عنوان مثال برای استفاده از RabbitMQ
اجرای AMQP مبتنی بر متغیر باید به صورت زیر تنظیم شود:

Mono.Messaging.RabbitMQ.RabbitMQMessagingProvider,Mono.Messaging.RabbitMQ

MONO_NO_SMP
اگر تنظیم شود باعث می شود که فرآیند mono به یک پردازنده متصل شود. این ممکن است
هنگام اشکال زدایی یا کار در شرایط مسابقه مفید است.

MONO_NO_TLS
غیرفعال کردن داخلی دسترسی های محلی رشته. اگر Segfault دریافت کردید، این را تنظیم کنید
در اوایل اجرای مونو.

MONO_PATH
یک مسیر جستجو برای زمان اجرا ارائه می دهد که در آن کتابخانه را جستجو کنید
فایل ها. این یک ابزار مناسب برای اشکال زدایی برنامه ها است، اما
نباید توسط برنامه های مستقر استفاده شود زیرا مونتاژ را خراب می کند
لودر به روش های ظریف
دایرکتوری ها توسط جداکننده مسیر پلت فرم (دونقطه در یونیکس) از هم جدا می شوند. مثال:
/home/username/lib:/usr/local/mono/lib
مسیرهای نسبی بر اساس دایرکتوری فعلی زمان راه‌اندازی حل می‌شوند.
راه حل های جایگزین برای MONO_PATH عبارتند از: نصب کتابخانه ها در
حافظه پنهان مجمع جهانی (نگاه کنید به گاکوتیل(1)) یا داشتن وابسته
کتابخانه ها در کنار فایل اجرایی اصلی.
برای شرح کامل شیوه های توصیه شده برای کاربرد
استقرار، ببینید
http://www.mono-project.com/docs/getting-started/application-deployment/

MONO_RTC
پشتیبانی آزمایشی RTC در پروفایلر آماری: اگر کاربر داشته باشد
با اجازه، آمار دقیق تری جمع آوری می شود. MONO_RTC
مقدار باید به آنچه لینوکس rtc اجازه می دهد محدود شود: قدرت دو
از 64 تا 8192 هرتز برای فعال کردن فرکانس های بالاتر مانند 4096 هرتز، به صورت root اجرا کنید:

echo 4096 > /proc/sys/dev/rtc/max-user-freq

مثلا:

MONO_RTC=4096 mono --profiler=default:stat program.exe

MONO_SHARED_DIR
اگر تنظیم شود، دایرکتوری است که وضعیت دسته ".wapi" در آن ذخیره می شود. این است
دایرکتوری که در آن لایه شبیه‌سازی Windows I/O داده‌های وضعیت مشترک خود را ذخیره می‌کند
(فایل ها، رویدادها، mutexes، لوله ها). به طور پیش فرض Mono فهرست ".wapi" را ذخیره می کند
در فهرست اصلی کاربران

MONO_SHARED_HOSTNAME
از مقدار رشته این متغیر به عنوان جایگزینی برای نام میزبان وقتی استفاده می کند
ایجاد نام فایل ها در دایرکتوری ".wapi". این کمک می کند اگر نام میزبان شما
هنگامی که یک برنامه مونو در حال اجرا است یا اگر دارید، احتمالاً ماشین تغییر می کند
دایرکتوری wapi. بین چندین کامپیوتر مختلف به اشتراک گذاشته شده است. مونو معمولاً از
نام میزبان برای ایجاد فایل‌هایی که برای اشتراک‌گذاری حالت در چندین Mono استفاده می‌شوند
فرآیندها این کار برای پشتیبانی از دایرکتوری های خانگی انجام می شود که ممکن است از طریق آن به اشتراک گذاشته شوند
شبکه می باشد.

MONO_STRICT_IO_EMULATION
در صورت تنظیم، بررسی های اضافی در طول عملیات IO انجام می شود. در حال حاضر، این فقط شامل
قفل مشاوره در اطراف فایل می نویسد.

MONO_THEM
نام تم مورد استفاده توسط Windows.Forms. تم های موجود امروز شامل
"clearlooks"، "nice" و "win32". پیش فرض "win32" است.

MONO_TLS_SESSION_CACHE_TIMEOUT
زمان، در ثانیه، که حافظه پنهان جلسه SSL/TLS ورودی آن را حفظ می کند تا از آن جلوگیری شود
یک مذاکره جدید بین مشتری و سرور. مذاکره بسیار CPU هستند
فشرده بنابراین یک مقدار سفارشی خاص برنامه ممکن است برای کوچک مفید باشد
سیستم های جاسازی شده. پیش فرض 180 ثانیه است.

MONO_THREADS_PER_CPU
حداقل تعداد thread ها در Threadpool عمومی خواهد بود
MONO_THREADS_PER_CPU * تعداد CPU. مقدار پیش فرض این متغیر 1 است.

MONO_XMLSERIALIZER_THS
آستانه XmlSerializer را برای تولید یک سریال‌ساز سفارشی برای a کنترل می‌کند
به جای استفاده از مفسر مبتنی بر Reflection، کلاس داده می شود. مقادیر ممکن
برای غیرفعال کردن استفاده از سریال‌ساز سفارشی یا عددی برای نشان دادن زمانی که
XmlSerializer باید سریال سازی را شروع کند. مقدار پیش فرض 50 است که به این معنی است
یک سریال‌ساز سفارشی در پنجاهمین استفاده تولید می‌شود.

MONO_X509_REVOCATION_MODE
حالت ابطال مورد استفاده هنگام اعتبارسنجی زنجیره گواهی X509 را تنظیم می کند (https,
ftps، smtps...). پیش‌فرض 'nocheck' است که هیچ بررسی ابطالی در آن انجام نمی‌دهد
همه. سایر مقادیر ممکن "آفلاین" هستند که بررسی CRL را انجام می دهد (نه
هنوز اجرا شده است) و «آنلاین» که از OCSP و CRL برای تأیید ابطال استفاده می کند
وضعیت (هنوز اجرا نشده است).

محیط زیست متغیرها برای اشکال زدایی


MONO_ASPNET_NODELETE
اگر روی هر مقدار تنظیم شود، فایل‌های منبع موقت تولید شده توسط کلاس‌های ASP.NET پشتیبانی می‌کنند
حذف نخواهد شد. آنها در فهرست موقت کاربر نگهداری می شوند.

MONO_DEBUG
اگر تنظیم شود، برخی از ویژگی های زمان اجرا را فعال می کند که برای اشکال زدایی مفید هستند. این متغیر
باید حاوی لیستی از گزینه های اشکال زدایی جدا شده با کاما باشد. در حال حاضر،
گزینه های زیر پشتیبانی می شوند:

شکستن تایید نشده
اگر این متغیر تنظیم شده باشد، وقتی مونو VM با مشکل تأیید مواجه می شود،
به جای پرتاب یک استثنا، به دیباگر نفوذ می کند. این هست
هنگام اشکال زدایی مشکلات تأیید کننده مفید است

بازیگران از این گزینه می توان برای دریافت اطلاعات دقیق تر از InvalidCast استفاده کرد
در موارد استثنا، اطلاعاتی در مورد انواع درگیر ارائه می دهد.

جمع آوری-pagefault-stats
اطلاعات مربوط به خطاهای صفحه را جمع آوری می کند. این به صورت داخلی برای ردیابی استفاده می شود
تعداد خطاهای صفحه تولید شده برای بارگذاری ابرداده. برای نمایش این
اطلاعات شما باید از این گزینه با گزینه خط فرمان "--stats" استفاده کنید.

بدون دامنه
این یک بهینه‌سازی برای برنامه‌های چند برنامه‌ای است (معمولاً
برنامه های ASP.NET). با توجه به محدودیت های داخلی Mono، Mono به طور پیش فرض
از تخصیص‌های تایپ‌شده در برنامه‌های چند برنامه دامنه تا آنجا که می‌توانستند استفاده نمی‌کند
هنگام تخلیه دامنه، حافظه نشت می کند. اگرچه این یک پیش فرض خوب است، برای
برنامه هایی که بیشتر از AppDomain استفاده می کنند (به عنوان مثال، ASP.NET
برنامه های کاربردی) ارزش آن را دارد که نشت های کوچک را با افزایش آن معاوضه کنید
عملکرد (علاوه بر این، از آنجایی که برنامه های ASP.NET احتمالاً اجرا نمی شوند
برای تخلیه دامنه های برنامه در سیستم های تولید، ارزش استفاده از آن را دارد
این ویژگی).

dyn-runtime-invoke
به زمان اجرا دستور می دهد که به جای آن از یک بسته بندی فراخوانی زمان اجرا عمومی استفاده کند
ایجاد یک لفاف فراخوانی

gdb معادل تنظیم MONO_XDEBUG متغیر، این نمادها را در a منتشر می کند
کتابخانه مشترک به عنوان کد JITed است که می تواند برای بازرسی در GDB بارگذاری شود
نمادها

gen-seq-points
به طور خودکار نقاط دنباله ای را که پشته IL خالی است ایجاد می کند. اینها
مکان هایی هستند که اشکال زدا می تواند نقطه شکست را تعیین کند.

چک های صریح-تهی
باعث می‌شود JIT یک بررسی صریح NULL روی ارجاع‌های متغیر متغیر ایجاد کند
به جای اینکه به سیستم عامل برای بالا بردن یک SIGSEGV یا دیگری وابسته باشید
شکل رویداد تله زمانی که به یک مکان حافظه نامعتبر دسترسی پیدا می شود.

دسته-نشانه
سیگنال وقفه (Control-C) را می گیرد و یک ردیابی پشته را نشان می دهد
فشرده شده است. برای پیدا کردن مکان اجرای برنامه در یک زمان خاص مفید است
نقطه. این فقط رد پشته یک رشته را نشان می دهد.

init-stacks
به زمان اجرا دستور می دهد تا پشته را با مقادیر شناخته شده مقداردهی اولیه کند (0x2a
در x86-64) در شروع روشی برای کمک به اشکال زدایی موتور JIT.

نگه داشتن نمایندگان
این گزینه ترامپولین‌های نماینده‌ای را که دیگر به آن ارجاع داده نمی‌شود فاش می‌کند
برای ارائه اطلاعات بیشتر در مورد سوء استفاده نماینده به کاربر.
اساساً ممکن است یک نمونه نماینده ایجاد شود، به کد مدیریت نشده منتقل شود،
و هیچ مرجعی در کد مدیریت شده نگهداری نمی شود که باعث جمع آوری کد زباله می شود.
با این گزینه می توان منشا مشکلات را ردیابی کرد.

reverse-pinvoke-exceptions
این گزینه باعث می شود که مونو با یک پیام توصیفی در هنگام طول بکشد
پس از یک استثنا، پشته باز می شود و به یک قاب پشته بومی می رسد. این
زمانی اتفاق می افتد که یک نماینده مدیریت شده به کد بومی و مدیریت شده ارسال می شود
نماینده یک استثنا می اندازد. Mono معمولاً سعی می کند پشته را باز کند
اولین کنترل کننده استثنا (مدیریت شده)، و از هر پشته بومی رد می شود
فریم ها در این فرآیند این منجر به رفتار نامشخص می شود (زیرا مونو اینطور نیست
بدانید که چگونه فریم های بومی را پردازش کنید)، نشت، و احتمالاً خرابی ها نیز.

no-gdb-backtrace
این گزینه بک تریس GDB منتشر شده توسط زمان اجرا پس از a را غیرفعال می کند
SIGSEGV یا SIGABRT در کد مدیریت نشده.

suspend-on-sigsegv
این گزینه زمانی که یک SIGSEGV بومی دریافت شود، برنامه را به حالت تعلیق در می آورد.
این برای اشکال‌زدایی خرابی‌هایی که تحت gdb اتفاق نمی‌افتند مفید است، زیرا a
فرآیند زنده حاوی اطلاعات بیشتری نسبت به یک فایل اصلی است.

check-pinvoke-callconv
این گزینه باعث می شود که زمان اجرا عدم تطابق قرارداد فراخوانی را بررسی کند
هنگام استفاده از pinvoke، یعنی مخلوط کردن cdecl/stdcall. فقط روی ویندوز کار میکنه اگر
عدم تطابق تشخیص داده می شود، ExecutionEngineException پرتاب می شود.

MONO_LOG_LEVEL
سطح گزارش، مقادیر ممکن عبارتند از «خطا»، «بحرانی»، «هشدار»، «پیام»،
"اطلاعات" و "اشکال زدایی". برای جزئیات بیشتر به بخش DEBUGGING مراجعه کنید.

MONO_LOG_MASK
دامنه زمان اجرا مونو را کنترل می کند که ورود به سیستم روی آن اعمال می شود. اگر تنظیم شود،
log mask به مقدار تنظیم شده تغییر می کند. مقادیر ممکن "asm" (لودر مونتاژ)،
"type"، "dll" (بارکننده کتابخانه بومی)، "gc" (زباله‌گیر)، "cfg" (فایل پیکربندی)
لودر)، "aot" (پیش کامپایلر)، "امنیت" (به عنوان مثال پشتیبانی از Moonlight CoreCLR) و
"همه". مقدار پیش فرض "همه" است. تغییر مقدار ماسک به شما امکان نمایش را می دهد
فقط پیام برای یک جزء خاص. می توانید از چند ماسک با کاما استفاده کنید
جدا کردن آنها به عنوان مثال برای دیدن پیام های فایل پیکربندی و لودر اسمبلی
پیام ها ماسک شما را روی "asm,cfg" تنظیم می کنند.

MONO_TRACE
برای ردیابی زمان اجرا فراخوانی های متد استفاده می شود. قالب ردیابی با کاما از هم جدا شده است
گزینه ها این است:

[-]M:نام روش
[-]N: فضای نام
[-]T:نام کلاس
[-]همه
[-]برنامه
خروجی Trace را در هنگام شروع غیرفعال کرد.

می‌توانید خروجی ردیابی را روشن/خاموش کنید و سیگنال SIGUSR2 را به برنامه ارسال کنید.

MONO_TRACE_LISTENER
اگر تنظیم شود، System.Diagnostics.DefaultTraceListener را فعال می کند، که نسخه را چاپ می کند.
خروجی کلاس های System.Diagnostics Trace و Debug. می توان آن را روی a تنظیم کرد
نام فایل و به Console.Out یا Console.Error برای نمایش خروجی به خروجی استاندارد
یا به ترتیب خطای استاندارد. اگر روی Console.Out یا Console.Error تنظیم شده است
می تواند یک پیشوند اختیاری اضافه کند که هنگام نوشتن پیام هایی مانند این استفاده می شود:
Console.Error:MyProgramName. System.Diagnostics.DefaultTraceListener را ببینید
مستندات برای اطلاعات بیشتر

MONO_WCF_TRACE
این کارکرد تشخیص WCF را به سادگی با خروجی تمام پیام های گزارش از آن آسان می کند
موتور WCF به "stdout"، "stderr" یا هر فایلی که به این متغیر محیطی منتقل می شود.
فرمت گزارش همان خروجی تشخیصی معمول است.

MONO_XEXCEPTIONS
هنگامی که با خطای X11 مواجه می شوید، این یک استثنا ایجاد می کند. به طور پیش فرض یک پیام است
نمایش داده می شود اما اجرا ادامه دارد

MONO_XMLSERIALIZER_DEBUG
برای جلوگیری از حذف فایل‌های موقت سریال‌ساز، این مقدار را روی ۱ قرار دهید
که برای سریال سازی سریع ایجاد شده اند. این ممکن است هنگام اشکال زدایی مفید باشد.

MONO_XSYNC
این در اجرای System.Windows.Forms هنگام اجرا با X11 استفاده می شود
باطن این برای اشکال زدایی مشکلات در Windows.Forms استفاده می شود زیرا همه موارد را مجبور می کند
دستورات به سرور X11 ارسال می شود تا به صورت همزمان انجام شود. حالت پیش فرض از
عملیات ناهمزمان است که جداسازی ریشه های معین را دشوار می کند
چالش ها و مسائل.

MONO_GENERIC_SHARING
این متغیر محیطی نوع اشتراک گذاری عمومی مورد استفاده را کنترل می کند. این متغیر
توسط توسعه دهندگان داخلی JIT استفاده می شود و نباید در تولید تغییر کند. انجام ندهید
از آن استفاده کنید. متغیر کنترل می کند که کدام کلاس ها دارای اشتراک گذاری کد عمومی باشند
فعال شد. مقادیر مجاز عبارتند از:

تمام همه کدهای تولید شده را می توان به اشتراک گذاشت.

مجموعه
فقط کلاس های System.Collections.Generic کد آن به اشتراک گذاشته می شود
(این مقدار پیش فرض است).

کورلب فقط کد موجود در corlib کد آن به اشتراک گذاشته می شود.

هیچ هیچ اشتراک گذاری کد عمومی انجام نخواهد شد.
اشتراک گذاری کد عمومی به طور پیش فرض فقط برای مجموعه ها اعمال می شود. Mono JIT به طور پیش فرض
این را روشن می کند

MONO_XDEBUG
وقتی MONO_XDEBUG env var تنظیم شد، اطلاعات اشکال زدایی برای کد JITted منتشر می شود.
در یک کتابخانه مشترک، قابل بارگیری در gdb. برای مثال، این امکان را برای مشاهده مدیریت شده فراهم می کند
نام فریم‌ها در بک‌تریس gdb.

MONO_VERBOSE_METHOD
حداکثر پرحرفی JIT را برای روش مشخص شده فعال می کند. این بسیار مفید است
برای تشخیص مشکلات کامپایل اشتباه یک روش خاص.

MONO_VERBOSE_HWCAP
در صورت تنظیم، اطلاعات خروجی JIT را در مورد ویژگی های شناسایی شده CPU (مانند SSE،
CMOV، FCMOV، و غیره) به stdout.

MONO_CONSERVATIVE_HWCAP
در صورت تنظیم، JIT هیچ شناسایی قابلیت سخت افزاری را انجام نخواهد داد. این ممکن است
برای مشخص کردن علت مشکلات JIT مفید است. زمانی که Mono ساخته می شود این حالت پیش فرض است
به عنوان یک کامپایلر متقابل AOT، به طوری که کد تولید شده روی اکثر سخت افزارها اجرا می شود.

والگریند


اگر می‌خواهید از Valgrind استفاده کنید، فایل "mono.supp" را مفید خواهید یافت، این فایل حاوی این فایل است
سرکوب برای GC که باعث هشدارهای نادرست می شود. اینطوری استفاده کن:
valgrind --suppressions=mono.supp mono ...

DTRACE


در برخی از پلتفرم‌ها، Mono می‌تواند مجموعه‌ای از کاوشگرهای DTrace (همچنین به عنوان کاربر زمین شناخته می‌شود) را در معرض نمایش بگذارد
تعریف ایستا، پروب USDT).

آنها در فایل 'mono.d' تعریف شده اند.

ves-init-begin، ves-init-end
شروع و پایان مقداردهی اولیه زمان اجرا.

روش-کامپایل-شروع، متد-کامپایل-پایان
شروع و پایان کامپایل متد. آرگومان های probe نام کلاس، متد هستند
نام و امضا و در صورت موفقیت یا شکست روش-کامپایل-پایان
تلفیقی.

gc-begin، gc-end
آغاز و پایان جمع آوری زباله.

برای تأیید در دسترس بودن کاوشگرها، اجرا کنید:
dtrace -P mono'$target' -l -c mono

مجوزها


پیاده سازی پینگ Mono برای تشخیص دسترسی به شبکه می تواند بسته های ICMP را ایجاد کند
خودش بدون نیاز به دستور ping سیستم برای انجام کار. اگر می خواهید فعال کنید
این در لینوکس برای کاربران غیر روت، شما باید به Mono باینری مجوزهای ویژه بدهید.

به عنوان root این دستور را اجرا کنید:
# setcap cap_net_raw=+ep /usr/bin/mono

با استفاده از خدمات onworks.net از مونو بصورت آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad




×
تبلیغات
❤️اینجا خرید کنید، رزرو کنید یا بخرید - رایگان است، به رایگان ماندن خدمات کمک می‌کند.