Environment Variables
يمكن تكوين جوليا بعدد من متغيرات البيئة، التي يمكن تعيينها إما بالطريقة المعتادة لكل نظام تشغيل، أو بطريقة محمولة من داخل جوليا. على افتراض أنك تريد تعيين متغير البيئة JULIA_EDITOR
إلى vim
، يمكنك كتابة ENV["JULIA_EDITOR"] = "vim"
(على سبيل المثال، في REPL) لإجراء هذا التغيير على أساس كل حالة على حدة، أو إضافة نفس الشيء إلى ملف تكوين المستخدم ~/.julia/config/startup.jl
في دليل المنزل الخاص بالمستخدم ليكون له تأثير دائم. يمكن تحديد القيمة الحالية لنفس متغير البيئة من خلال تقييم ENV["JULIA_EDITOR"]
.
تبدأ متغيرات البيئة التي تستخدمها جوليا عمومًا بـ JULIA
. إذا تم استدعاء InteractiveUtils.versioninfo
باستخدام الكلمة الرئيسية verbose=true
، فإن الإخراج سيقوم بإدراج أي متغيرات بيئة معرفة ذات صلة بجوليا، بما في ذلك تلك التي تحتوي على JULIA
في أسمائها.
يوصى بتجنب تغيير متغيرات البيئة أثناء وقت التشغيل، مثل داخل ~/.julia/config/startup.jl
.
سبب واحد هو أن بعض متغيرات لغة جوليا، مثل JULIA_NUM_THREADS
و JULIA_PROJECT
، تحتاج إلى أن يتم تعيينها قبل بدء جوليا.
بالمثل، يتم تشغيل دوال __init__()
لوحدات المستخدم في sysimage (عبر PackageCompiler) قبل startup.jl
، لذا قد يكون تعيين متغيرات البيئة في startup.jl
متأخراً جداً بالنسبة لشفرة المستخدم.
علاوة على ذلك، يمكن أن يؤدي تغيير متغيرات البيئة أثناء وقت التشغيل إلى إدخال سباقات بيانات في الشيفرة التي كانت غير ضارة.
في Bash، يمكن تعيين متغيرات البيئة إما يدويًا عن طريق تشغيل، على سبيل المثال، export JULIA_NUM_THREADS=4
قبل بدء Julia، أو عن طريق إضافة نفس الأمر إلى ~/.bashrc
أو ~/.bash_profile
لتعيين المتغير في كل مرة يتم فيها بدء Bash.
File locations
JULIA_BINDIR
المسار المطلق للدليل الذي يحتوي على تنفيذ جوليا، والذي يحدد المتغير العالمي Sys.BINDIR
. إذا لم يتم تعيين $JULIA_BINDIR
، فإن جوليا تحدد القيمة Sys.BINDIR
في وقت التشغيل.
الملف التنفيذي نفسه هو واحد من
$JULIA_BINDIR/julia
$JULIA_BINDIR/julia-debug
بشكل افتراضي.
تحدد المتغير العالمي Base.DATAROOTDIR
مسارًا نسبيًا من Sys.BINDIR
إلى دليل البيانات المرتبط بـ Julia. ثم المسار
$JULIA_BINDIR/$DATAROOTDIR/julia/base
يحدد الدليل الذي تبحث فيه جوليا في البداية عن ملفات المصدر (عبر Base.find_source_file()
).
على نفس المنوال، تحدد المتغير العالمي Base.SYSCONFDIR
مسارًا نسبيًا إلى دليل ملف التكوين. ثم تبحث جوليا عن ملف startup.jl
في
$JULIA_BINDIR/$SYSCONFDIR/julia/startup.jl
$JULIA_BINDIR/../etc/julia/startup.jl
بشكل افتراضي (عبر Base.load_julia_startup()
).
على سبيل المثال، ستحتوي تثبيت Linux مع تنفيذ Julia الموجود في /bin/julia
، و DATAROOTDIR
من ../share
، و SYSCONFDIR
من ../etc
على JULIA_BINDIR
تم تعيينه إلى /bin
، ومسار بحث ملفات المصدر هو
/share/julia/base
و مسار بحث تكوين عالمي من
/etc/julia/startup.jl
JULIA_PROJECT
مسار الدليل الذي يشير إلى أي مشروع يجب أن يكون المشروع النشط الأول. إن تعيين هذه المتغير البيئي له نفس تأثير تحديد خيار بدء التشغيل --project
، ولكن --project
له أولوية أعلى. إذا تم تعيين المتغير إلى @.
(لاحظ النقطة اللاحقة) فإن جوليا تحاول العثور على دليل مشروع يحتوي على ملف Project.toml
أو JuliaProject.toml
من الدليل الحالي وآبائه. انظر أيضًا الفصل حول Code Loading.
JULIA_PROJECT
يجب تعريفه قبل بدء جوليا؛ تعريفه في startup.jl
متأخر جدًا في عملية بدء التشغيل.
JULIA_LOAD_PATH
تُستخدم متغير البيئة JULIA_LOAD_PATH
لملء المتغير العالمي جوليا LOAD_PATH
، الذي يحدد الحزم التي يمكن تحميلها عبر import
و using
(انظر Code Loading).
على عكس متغير PATH
في الشل، يتم توسيع الإدخالات الفارغة في JULIA_LOAD_PATH
إلى القيمة الافتراضية لـ LOAD_PATH
، ["@", "@v#.#", "@stdlib"]
عند ملء LOAD_PATH
. وهذا يسمح بإضافة أو تقديم، إلخ، لقيمة مسار التحميل في سكربتات الشل بغض النظر عما إذا كان 4d61726b646f776e2e436f64652822222c20224a554c49415f4c4f41445f504154482229_40726566204a554c49415f4c4f41445f50415448
قد تم تعيينه بالفعل أم لا. على سبيل المثال، لإضافة الدليل /foo/bar
إلى LOAD_PATH
فقط قم ب
export JULIA_LOAD_PATH="/foo/bar:$JULIA_LOAD_PATH"
إذا كانت متغير البيئة JULIA_LOAD_PATH
قد تم تعيينه بالفعل، فسيتم إضافة قيمته القديمة في البداية مع /foo/bar
. من ناحية أخرى، إذا لم يتم تعيين 4d61726b646f776e2e436f64652822222c20224a554c49415f4c4f41445f504154482229_40726566204a554c49415f4c4f41445f50415448
، فسيتم تعيينه إلى /foo/bar:
، والذي سيتوسع إلى قيمة LOAD_PATH
تساوي ["/foo/bar", "@", "@v#.#", "@stdlib"]
. إذا تم تعيين 4d61726b646f776e2e436f64652822222c20224a554c49415f4c4f41445f504154482229_40726566204a554c49415f4c4f41445f50415448
إلى سلسلة فارغة، فإنه يتوسع إلى مصفوفة LOAD_PATH
فارغة. بعبارة أخرى، يتم تفسير السلسلة الفارغة كمصفوفة ذات صفر عنصر، وليس كمصفوفة ذات عنصر واحد من السلسلة الفارغة. تم اختيار هذا السلوك بحيث يكون من الممكن تعيين مسار تحميل فارغ عبر متغير البيئة. إذا كنت تريد مسار التحميل الافتراضي، إما قم بإلغاء تعيين متغير البيئة أو إذا كان يجب أن يحتوي على قيمة، قم بتعيينه إلى السلسلة :
.
على نظام ويندوز، يتم فصل عناصر المسار بواسطة حرف ;
، كما هو الحال مع معظم قوائم المسارات على ويندوز. استبدل :
بـ ;
في الفقرة أعلاه.
JULIA_DEPOT_PATH
تُستخدم متغير البيئة JULIA_DEPOT_PATH
لملء المتغير العالمي جوليا DEPOT_PATH
، الذي يتحكم في المكان الذي يبحث فيه مدير الحزم، بالإضافة إلى آليات تحميل الشيفرة في جوليا، عن سجلات الحزم، والحزم المثبتة، والبيئات المسماة، واستنساخات المستودعات، وصور الحزم المجمعة المخزنة مؤقتًا، وملفات التكوين، والموقع الافتراضي لملف تاريخ REPL.
على عكس متغير PATH
في الشل ولكن مشابه لـ JULIA_LOAD_PATH
، فإن الإدخالات الفارغة في JULIA_DEPOT_PATH
لها سلوك خاص:
- في النهاية، يتم توسيعه إلى القيمة الافتراضية لـ
DEPOT_PATH
، باستثناء مستودع المستخدم. - في البداية، يتم توسيعه إلى القيمة الافتراضية لـ
DEPOT_PATH
، بما في ذلك مستودع المستخدم.
هذا يسمح بتجاوز سهل لمستودع المستخدم، مع الاحتفاظ بالوصول إلى الموارد المجمعة مع جوليا، مثل ملفات التخزين المؤقت، والقطع الفنية، وما إلى ذلك. على سبيل المثال، لتبديل مستودع المستخدم إلى /foo/bar
استخدم :
في النهاية.
export JULIA_DEPOT_PATH="/foo/bar:"
ستكتب جميع عمليات الحزمة، مثل استنساخ السجلات أو تثبيت الحزم، الآن إلى /foo/bar
، ولكن نظرًا لأن الإدخال الفارغ يتم توسيعه إلى مستودع النظام الافتراضي، ستظل أي موارد مدمجة متاحة. إذا كنت ترغب حقًا في استخدام المستودع في /foo/bar
فقط، وعدم تحميل أي موارد مدمجة، ما عليك سوى تعيين متغير البيئة إلى /foo/bar
بدون النقطتين في النهاية.
لإضافة مستودع في نهاية القائمة الافتراضية الكاملة، بما في ذلك مستودع المستخدم الافتراضي، استخدم :
في البداية
export JULIA_DEPOT_PATH=":/foo/bar"
هناك استثناءان للقواعد المذكورة أعلاه. أولاً، إذا تم تعيين JULIA_DEPOT_PATH
إلى سلسلة فارغة، فإنه يتوسع إلى مصفوفة DEPOT_PATH
فارغة. بعبارة أخرى، يتم تفسير السلسلة الفارغة كمصفوفة ذات صفر عنصر، وليس كمصفوفة ذات عنصر واحد من السلسلة الفارغة. تم اختيار هذا السلوك بحيث يكون من الممكن تعيين مسار مستودع فارغ عبر متغير البيئة.
ثانيًا، إذا لم يتم تحديد مستودع المستخدم في JULIA_DEPOT_PATH
، فإن الإدخال الفارغ يتم توسيعه إلى المستودع الافتراضي بما في ذلك مستودع المستخدم. وهذا يجعل من الممكن استخدام المستودع الافتراضي، كما لو كان متغير البيئة غير مضبوط، عن طريق تعيينه إلى السلسلة :
.
على نظام Windows، يتم فصل عناصر المسار بواسطة حرف ;
، كما هو الحال مع معظم قوائم المسارات على Windows. استبدل :
بـ ;
في الفقرة أعلاه.
JULIA_DEPOT_PATH
يجب تعريفه قبل بدء جوليا؛ تعريفه في startup.jl
متأخر جدًا في عملية البدء؛ في تلك المرحلة يمكنك بدلاً من ذلك تعديل مصفوفة DEPOT_PATH
مباشرة، والتي يتم ملؤها من متغير البيئة.
JULIA_HISTORY
المسار المطلق REPL.find_hist_file()
لملف تاريخ REPL. إذا لم يتم تعيين $JULIA_HISTORY
، فإن REPL.find_hist_file()
يكون افتراضيًا إلى
$(DEPOT_PATH[1])/logs/repl_history.jl
JULIA_MAX_NUM_PRECOMPILE_FILES
يحدد الحد الأقصى لعدد النسخ المختلفة من حزمة واحدة التي سيتم تخزينها في ذاكرة التخزين المؤقت للتجميع المسبق (الافتراضي = 10).
JULIA_VERBOSE_LINKING
إذا تم تعيينه على true، ستظهر أوامر الرابط أثناء ما قبل التجميع.
Pkg.jl
JULIA_CI
إذا تم تعيينه على true
، فهذا يشير إلى خادم الحزم أن أي عمليات حزم هي جزء من نظام التكامل المستمر (CI) لأغراض جمع إحصائيات استخدام الحزم.
JULIA_NUM_PRECOMPILE_TASKS
عدد المهام المتوازية التي يجب استخدامها عند تجميع الحزم مسبقًا. انظر Pkg.precompile
.
JULIA_PKG_DEVDIR
الدليل الافتراضي المستخدم بواسطة Pkg.develop
لتنزيل الحزم.
JULIA_PKG_IGNORE_HASHES
إذا تم تعيينه إلى 1
، فسوف يتجاهل هذا التجزئات غير الصحيحة في العناصر. يجب استخدام ذلك بحذر، حيث إنه يعطل التحقق من التنزيلات، ولكن يمكن أن يحل المشكلات عند نقل الملفات عبر أنواع مختلفة من أنظمة الملفات. انظر Pkg.jl issue #2317 لمزيد من التفاصيل.
هذا مدعوم فقط في جوليا 1.6 وما فوق.
JULIA_PKG_OFFLINE
إذا تم تعيينه على true
، فسيؤدي ذلك إلى تمكين وضع عدم الاتصال: انظر Pkg.offline
.
يتطلب وضع عدم الاتصال في Pkg وجود Julia 1.5 أو أحدث.
JULIA_PKG_PRECOMPILE_AUTO
إذا تم تعيينه إلى 0
، فسيؤدي ذلك إلى تعطيل الترجمة المسبقة التلقائية بواسطة إجراءات الحزمة التي تغير البيان. انظر Pkg.precompile
.
JULIA_PKG_SERVER
يحدد عنوان URL لسجل الحزم الذي يجب استخدامه. بشكل افتراضي، يستخدم Pkg
https://pkg.julialang.org
لجلب حزم جوليا. بالإضافة إلى ذلك، يمكنك تعطيل استخدام بروتوكول PkgServer، والوصول بدلاً من ذلك إلى الحزم مباشرة من مضيفيها (GitHub، GitLab، إلخ) عن طريق تعيين: export JULIA_PKG_SERVER=""
JULIA_PKG_SERVER_REGISTRY_PREFERENCE
يحدد نكهة السجل المفضلة. القيم المدعومة حاليًا هي conservative
(الافتراضي)، والذي سينشر فقط الموارد التي تمت معالجتها بواسطة خادم التخزين (وبالتالي لديها احتمال أعلى أن تكون متاحة من PkgServers)، بينما eager
ستنشر السجلات التي قد لا تكون مواردها قد تمت معالجتها بالضرورة بواسطة خوادم التخزين. يجب على المستخدمين خلف جدران نارية صارمة لا تسمح بالتنزيل من خوادم عشوائية عدم استخدام نكهة eager
.
هذا يؤثر فقط على جوليا 1.7 وما فوق.
JULIA_PKG_UNPACK_REGISTRY
إذا تم تعيينه على true
، فسيقوم بفك ضغط السجل بدلاً من تخزينه كأرشيف مضغوط.
هذا يؤثر فقط على جوليا 1.7 وما فوق. ستقوم الإصدارات السابقة دائمًا بفك حزم السجل.
JULIA_PKG_USE_CLI_GIT
إذا تم تعيينه على true
، ستستخدم عمليات Pkg التي تستخدم بروتوكول git تنفيذ git
خارجي بدلاً من مكتبة libgit2 الافتراضية.
استخدام تنفيذ git
مدعوم فقط على جوليا 1.7 وما فوق.
JULIA_PKGRESOLVE_ACCURACY
دقة محلل الحزمة. يجب أن تكون هذه قيمة صحيحة موجبة، القيمة الافتراضية هي 1
.
JULIA_PKG_PRESERVE_TIERED_INSTALLED
قم بتغيير استراتيجية تثبيت الحزمة الافتراضية إلى Pkg.PRESERVE_TIERED_INSTALLED
للسماح لمدير الحزم بمحاولة تثبيت إصدارات الحزم مع الحفاظ على أكبر عدد ممكن من إصدارات الحزم المثبتة بالفعل.
هذا يؤثر فقط على جوليا 1.9 وما فوق.
Network transport
JULIA_NO_VERIFY_HOSTS
JULIA_SSL_NO_VERIFY_HOSTS
JULIA_SSH_NO_VERIFY_HOSTS
JULIA_ALWAYS_VERIFY_HOSTS
حدد المضيفين الذين يجب أو لا يجب التحقق من هويتهم لطبقات النقل المحددة. انظر NetworkOptions.verify_host
JULIA_SSL_CA_ROOTS_PATH
حدد الملف أو الدليل الذي يحتوي على جذور سلطة الشهادات. انظر NetworkOptions.ca_roots
External applications
JULIA_SHELL
المسار المطلق للشل الذي يجب أن تنفذ به جوليا الأوامر الخارجية (عبر Base.repl_cmd()
). الافتراضي هو متغير البيئة $SHELL
، ويعود إلى /bin/sh
إذا كان $SHELL
غير محدد.
على نظام ويندوز، يتم تجاهل هذا المتغير البيئي، وتُنفذ الأوامر الخارجية مباشرة.
JULIA_EDITOR
المحرر الذي يتم إرجاعه بواسطة InteractiveUtils.editor()
ويستخدم في، على سبيل المثال، InteractiveUtils.edit
، يشير إلى أمر المحرر المفضل، على سبيل المثال vim
.
$JULIA_EDITOR
تأخذ الأولوية على $VISUAL
، والتي بدورها تأخذ الأولوية على $EDITOR
. إذا لم يتم تعيين أي من هذه المتغيرات البيئية، فسيتم اعتبار المحرر هو open
على Windows وOS X، أو /etc/alternatives/editor
إذا كان موجودًا، أو emacs
خلاف ذلك.
لاستخدام Visual Studio Code على Windows، قم بتعيين $JULIA_EDITOR
إلى code.cmd
.
Parallelization
JULIA_CPU_THREADS
يتجاوز المتغير العالمي Base.Sys.CPU_THREADS
، عدد أنوية وحدة المعالجة المركزية المنطقية المتاحة.
JULIA_WORKER_TIMEOUT
A Float64
الذي يحدد قيمة Distributed.worker_timeout()
(افتراضي: 60.0
). هذه الدالة تعطي عدد الثواني التي سينتظرها عملية العامل للاتصال بعملية الماستر قبل أن تموت.
JULIA_NUM_THREADS
عدد صحيح غير موقع 64 بت (uint64_t
) الذي يحدد الحد الأقصى لعدد الخيوط المتاحة لجوليا. إذا لم يكن $JULIA_NUM_THREADS
إيجابيًا أو لم يتم تعيينه، أو إذا لم يكن من الممكن تحديد عدد خيوط وحدة المعالجة المركزية من خلال استدعاءات النظام، فإن عدد الخيوط يتم تعيينه إلى 1
.
إذا تم تعيين $JULIA_NUM_THREADS
إلى auto
، فسيتم تعيين عدد الخيوط إلى عدد خيوط وحدة المعالجة المركزية.
JULIA_NUM_THREADS
يجب أن يتم تعريفه قبل بدء جوليا؛ تعريفه في startup.jl
يكون متأخراً جداً في عملية بدء التشغيل.
في جوليا 1.5 وما فوق، يمكن أيضًا تحديد عدد الخيوط عند بدء التشغيل باستخدام وسيط سطر الأوامر -t
/--threads
.
تتطلب قيمة auto
لـ $JULIA_NUM_THREADS
وجود جوليا 1.7 أو أعلى.
JULIA_THREAD_SLEEP_THRESHOLD
إذا تم تعيينه إلى سلسلة تبدأ بالجزء الفرعي غير الحسّاس لحالة الأحرف "infinite"
، فإن الخيوط الدوارة لا تنام أبدًا. خلاف ذلك، يتم تفسير $JULIA_THREAD_SLEEP_THRESHOLD
كعدد صحيح غير موقع 64 بت (uint64_t
) ويعطي، بالنانoseconds، مقدار الوقت بعده يجب أن تنام الخيوط الدوارة.
JULIA_NUM_GC_THREADS
يحدد عدد الخيوط المستخدمة في جمع القمامة. إذا لم يتم تحديده، يتم تعيينه إلى نصف عدد خيوط العمل.
تم إضافة متغير البيئة في 1.10
JULIA_IMAGE_THREADS
عدد صحيح غير موقع بحجم 32 بت يحدد عدد الخيوط المستخدمة في تجميع الصور في هذه العملية الخاصة بـ Julia. قد يتم تجاهل قيمة هذه المتغير إذا كانت الوحدة صغيرة. إذا تُركت غير محددة، يتم استخدام أصغر قيمة بين JULIA_CPU_THREADS
أو نصف عدد أنوية المعالج المنطقية في مكانها.
JULIA_IMAGE_TIMINGS
قيمة بوليانية تحدد ما إذا كانت معلومات التوقيت التفصيلية مطبوعة أثناء تجميع الصورة. الافتراضي هو 0.
JULIA_EXCLUSIVE
إذا تم تعيينه إلى أي شيء بخلاف 0
، فإن سياسة خيوط جوليا تتماشى مع التشغيل على جهاز مخصص: الخيط الرئيسي على المعالج 0، والخيوط مرتبطة. خلاف ذلك، تترك جوليا نظام التشغيل يتعامل مع سياسة الخيوط.
REPL formatting
متغيرات البيئة التي تحدد كيفية تنسيق مخرجات REPL في الطرفية. بشكل عام، يجب تعيين هذه المتغيرات إلى ANSI terminal escape sequences. توفر جوليا واجهة عالية المستوى مع الكثير من نفس الوظائف؛ انظر القسم حول The Julia REPL.
JULIA_ERROR_COLOR
تنسيق Base.error_color()
(افتراضي: أحمر فاتح، "\033[91m"
) الذي يجب أن تحتويه الأخطاء في الطرفية.
JULIA_WARN_COLOR
التنسيق Base.warn_color()
(افتراضي: أصفر، "\033[93m"
) الذي يجب أن تكون عليه التحذيرات في الطرفية.
JULIA_INFO_COLOR
التنسيق Base.info_color()
(افتراضي: سماوي، "\033[36m"
) الذي يجب أن يكون للمعلومات في الطرفية.
JULIA_INPUT_COLOR
التنسيق Base.input_color()
(افتراضي: عادي، "\033[0m"
) الذي يجب أن يكون للإدخال في الطرفية.
JULIA_ANSWER_COLOR
التنسيق Base.answer_color()
(افتراضي: عادي، "\033[0m"
) الذي يجب أن يكون للإخراج في الطرفية.
System and Package Image Building
JULIA_CPU_TARGET
قم بتعديل بنية الجهاز المستهدف لـ (pre)compiling system و package images. JULIA_CPU_TARGET
يؤثر فقط على توليد صورة كود الآلة التي يتم إخراجها إلى ذاكرة التخزين المؤقت على القرص. على عكس --cpu-target
، أو -C
، command line option، فإنه لا يؤثر على توليد كود الوقت الفعلي (JIT) داخل جلسة جوليا حيث يتم تخزين كود الآلة فقط في الذاكرة.
القيم الصالحة لـ JULIA_CPU_TARGET
يمكن الحصول عليها عن طريق تنفيذ julia -C help
.
تعيين JULIA_CPU_TARGET
مهم لأنظمة الحوسبة المتغايرة حيث قد تكون المعالجات من أنواع أو ميزات مختلفة موجودة. يتم مواجهة ذلك بشكل شائع في تجمعات الحوسبة عالية الأداء (HPC) حيث قد تستخدم العقد المكونة معالجات متميزة.
سلسلة هدف وحدة المعالجة المركزية هي قائمة من السلاسل مفصولة بـ ;
كل سلسلة تبدأ باسم وحدة المعالجة المركزية أو اسم المعمارية وتليها قائمة اختيارية من الميزات مفصولة بـ ,
. اسم وحدة المعالجة المركزية generic
أو اسم فارغ يعني مجموعة الميزات الأساسية المطلوبة لمجموعة التعليمات المستهدفة والتي هي على الأقل المعمارية التي تم تجميع وقت التشغيل C/C++ بها. يتم تفسير كل سلسلة بواسطة LLVM.
تدعم بعض الميزات الخاصة:
clone_all
هذا يجبر الهدف على أن يحتوي على جميع الوظائف في sysimg مستنسخة. عند استخدامه في الشكل السلبي (أي
-clone_all
)، فإنه يعطل النسخ الكامل الذي يتم تمكينه بشكل افتراضي لبعض الأهداف.base([0-9]*)
هذا يحدد فهرس الهدف الأساسي (بدءًا من 0). الهدف الأساسي هو الهدف الذي يعتمد عليه الهدف الحالي، أي أن الدوال التي لا يتم استنساخها ستستخدم النسخة في الهدف الأساسي. تتسبب هذه الخيار في استنساخ الهدف الأساسي بالكامل (كما لو تم تحديد
clone_all
له) إذا لم يكن الهدف الافتراضي (0). يمكن أن يكون الفهرس أصغر فقط من الفهرس الحالي.opt_size
قم بتحسين الحجم مع الحد الأدنى من تأثير الأداء. خيار
-Os
في Clang/GCC.min_size
قم بتحسين الحجم فقط. خيار
-Oz
في Clang.
Debugging and profiling
JULIA_DEBUG
قم بتمكين تسجيل الأخطاء لملف أو وحدة، راجع Logging
لمزيد من المعلومات.
JULIA_PROFILE_PEEK_HEAP_SNAPSHOT
تمكين جمع لقطة كومة أثناء التنفيذ عبر آلية معاينة التوصيف. انظر Triggered During Execution.
JULIA_TIMING_SUBSYSTEMS
يتيح لك تمكين أو تعطيل المناطق لتشغيل جوليا محدد. على سبيل المثال، تعيين المتغير إلى +GC,-INFERENCE
سيمكن مناطق GC
ويعطل مناطق INFERENCE
. انظر Dynamically Enabling and Disabling Zones.
JULIA_GC_ALLOC_POOL
JULIA_GC_ALLOC_OTHER
JULIA_GC_ALLOC_PRINT
إذا تم تعيينها، فإن هذه المتغيرات البيئية تأخذ سلاسل نصية تبدأ اختياريًا بالحرف 'r'
، تليها سلسلة من الاستبدال النصي لقائمة مفصولة بنقطتين من ثلاثة أعداد صحيحة 64 بت موقعة (int64_t
). تمثل هذه الثلاثية من الأعداد a:b:c
المتتالية الحسابية a
، a + b
، a + 2*b
، ... c
.
- إذا كانت هذه هي المرة
n
التي تم فيها استدعاءjl_gc_pool_alloc()
، وn
ينتمي إلى المتتالية الحسابية الممثلة بـ$JULIA_GC_ALLOC_POOL
، فإن جمع القمامة يتم إجباريًا. - إذا كانت هذه هي المرة
n
التي تم فيها استدعاءmaybe_collect()
، وn
تنتمي إلى المتتالية الحسابية الممثلة بـ$JULIA_GC_ALLOC_OTHER
، فإن جمع القمامة يتم إجباريًا. - إذا كانت هذه هي المرة
n
التي تم فيها استدعاءjl_gc_collect()
، وn
تنتمي إلى المتتالية الحسابية الممثلة بـ$JULIA_GC_ALLOC_PRINT
، فسيتم طباعة العدادات لعدد الاستدعاءات لـjl_gc_pool_alloc()
وmaybe_collect()
.
إذا كانت قيمة متغير البيئة تبدأ بالحرف 'r'
، فإن الفاصل الزمني بين أحداث جمع القمامة يتم تعيينه عشوائيًا.
تؤثر هذه المتغيرات البيئية فقط إذا تم تجميع جوليا مع تصحيح جمع القمامة (أي إذا تم تعيين WITH_GC_DEBUG_ENV
إلى 1
في تكوين البناء).
JULIA_GC_NO_GENERATIONAL
إذا تم تعيينه إلى أي شيء بخلاف 0
، فإن جامع القمامة في جوليا لا يقوم أبدًا بإجراء "مسحات سريعة" للذاكرة.
تؤثر هذه المتغيرات البيئية فقط إذا تم تجميع جوليا مع تصحيح جمع القمامة (أي إذا تم تعيين WITH_GC_DEBUG_ENV
إلى 1
في تكوين البناء).
JULIA_GC_WAIT_FOR_DEBUGGER
إذا تم تعيينه إلى أي شيء بخلاف 0
، فسوف ينتظر جامع القمامة في جوليا ليرتبط به مصحح الأخطاء بدلاً من الإنهاء كلما حدث خطأ حرج.
تؤثر هذه المتغيرات البيئية فقط إذا تم تجميع جوليا مع تصحيح جمع القمامة (أي إذا تم تعيين WITH_GC_DEBUG_ENV
إلى 1
في تكوين البناء).
ENABLE_JITPROFILING
إذا تم تعيينه إلى أي شيء بخلاف 0
، فسيقوم المترجم بإنشاء وتسجيل مستمع حدث للتقييم في الوقت المناسب (JIT).
تؤثر هذه المتغيرات البيئية فقط إذا تم تجميع جوليا بدعم لتتبع JIT، باستخدام إما
- VTune™ Amplifier من إنتل (
USE_INTEL_JITEVENTS
تم تعيينه إلى1
في تكوين البناء)، أو - OProfile (
USE_OPROFILE_JITEVENTS
تم تعيينه إلى1
في تكوين البناء). - Perf (
USE_PERF_JITEVENTS
تم تعيينه إلى1
في تكوين البناء). هذه التكامل مفعل بشكل افتراضي.
ENABLE_GDBLISTENER
إذا تم تعيينه إلى أي شيء بخلاف 0
فإنه يمكّن تسجيل GDB لشفرة جوليا في إصدارات الإصدار. في إصدارات التصحيح من جوليا، يتم تمكين ذلك دائمًا. يُوصى باستخدامه مع -g 2
.
JULIA_LLVM_ARGS
الحجج التي يجب تمريرها إلى واجهة LLVM الخلفية.
JULIA_FALLBACK_REPL
يُجبر على استخدام REPL الاحتياطي بدلاً من REPL.jl.