Aceasta este comanda erl care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
erl - Emulatorul Erlang
DESCRIERE
Erl programul pornește un sistem de rulare Erlang. Detaliile exacte (de exemplu, dacă
Erl este un script sau un program și care alte programe le apelează) sunt dependente de sistem.
Utilizatorii Windows probabil vor să folosească lume în schimb, programul care rulează în propria fereastră
cu bare de defilare și acceptă editarea în linia de comandă. The Erl programul pe Windows oferă nr
editare de linie în shell-ul său, iar pe Windows 95 nu există nicio modalitate de a derula înapoi la text care
a defilat de pe ecran. The Erl programul trebuie utilizat, totuși, în conducte sau dacă dvs
doriți să redirecționați intrarea sau ieșirea standard.
Notă:
Începând cu versiunea ERTS 5.9 (OTP-R15B), sistemul de rulare va funcționa implicit nu legați programatorii
la procesoare logice. Pentru mai multe informații, consultați documentația +sbt steag de sistem.
EXPORTURI
Erl
Pornește un sistem de rulare Erlang.
Argumentele pot fi împărțite în emulator steaguri, steaguri si simplu argumente:
* Orice argument care începe cu caracterul + este interpretat ca o emulator pavilion.
După cum este indicat de nume, steagurile emulatorului controlează comportamentul emulatorului.
* Orice argument care începe cu caracterul - (cratima) este interpretată ca a pavilion
care ar trebui să fie trecut la partea Erlang a sistemului de rulare, mai mult
în special la înăuntru proces de sistem, vezi înăuntru(3erl).
înăuntru procesul în sine interpretează unele dintre aceste steaguri, the înăuntru steaguri. De asemenea
stochează toate steagurile rămase, the utilizator steaguri. Acesta din urmă poate fi recuperat de
apel init:get_argument/1.
Se poate observa că există un număr mic de steaguri „-” care acum de fapt
sunt steaguri de emulator, vezi descrierea de mai jos.
* Argumentele simple nu sunt interpretate în niciun fel. Ele sunt, de asemenea, stocate de către
înăuntru proces și poate fi preluat prin apelare init:get_plain_arguments/0. Simplu
argumentele pot apărea înaintea primului steag sau după a -- steag. În plus,
steagul -suplimentar face ca tot ce urmează să devină argumente simple.
Exemplu:
% erl +W w -sname arnie +R 9 -s my_init -extra +bertie
(arnie@host)1> init:get_argument(sname).
{ok,[["arnie"]]}
(arnie@host)2> init:get_plain_arguments().
["+bertie"]
Aici +W w si +R 9 sunt steaguri de emulator. -s my_init este un flag init, interpretat de
înăuntru. -nume Arnie este un steag de utilizator, stocat de înăuntru. Este citit de Kernel și va
determină distribuirea sistemului de rulare Erlang. În sfârșit, totul după
-suplimentar (acesta este, +bertie) este considerată drept argumente simple.
% erl -myflag 1
1> init:obține_argument(steagul meu).
{ok,[["1"]]}
2> init:get_plain_arguments().
[]
Aici steagul utilizatorului -steagul meu 1 este transmis și stocat de către înăuntru proces. Este un
steag definit de utilizator, probabil folosit de o aplicație definită de utilizator.
FLAGURI
În următoarea listă, sunt marcate steaguri init (steagul init). Dacă nu se specifică altfel, toate
alte steaguri sunt steaguri utilizator, pentru care valorile pot fi preluate prin apelare
init:get_argument/1. Rețineți că lista de steaguri de utilizator nu este exhaustivă, poate exista
indicatoare suplimentare, specifice aplicației, care sunt documentate în documentele corespunzătoare
documentația aplicației.
--(steagul init):
Tot ce urmează -- până la următorul steag (-steag or +drapel) este considerat simplu
argumente și pot fi preluate folosind init:get_plain_arguments/0.
-Cerere de val:
Setează parametrul de configurare a aplicației de la valoare val pentru aplicație
Aplicatii, A se vedea aplicaţia(5) si cerere(3erl).
-args_file Nume de fișier:
Argumentele liniei de comandă sunt citite din fișier Nume de fișier. Argumentele citite din
fișierul înlocuiește „-args_file Nume de fișier' marcaj pe linia de comandă rezultată.
Fișierul Nume de fișier ar trebui să fie un fișier text simplu și poate conține comentarii și comenzi
argumente de linie. Un comentariu începe cu un caracter # și continuă până la următorul sfârșit al
caracter de linie. Backslash (\\) este folosit ca caracter de ghilimele. Toată linia de comandă
argumente acceptate de Erl sunt permise, de asemenea -args_file Nume de fișier steag. Ai grija
să nu provoace dependențe circulare între fișierele care conțin -args_file steag,
deşi.
-suplimentar steag este tratat special. Domeniul său de aplicare se termină la sfârșitul fișierului. Argumente
în urma unei -suplimentar flag sunt mutate pe linia de comandă în -suplimentar secțiune, adică
sfârșitul liniei de comandă care urmează după an -suplimentar steag.
-async_shell_start:
Shell-ul Erlang inițial nu citește intrarea utilizatorului până când procedura de pornire a sistemului a făcut-o
a fost finalizată (Erlang 5.4 și mai târziu). Acest flag dezactivează sincronizarea de pornire
caracteristică și permite shell-ului să pornească în paralel cu restul sistemului.
- cizma Fișier:
Specifică numele fișierului de pornire, Fișier.boot, care este folosit pentru a porni sistemul. Vedea
înăuntru(3erl). Dacă nu Fișier conține o cale absolută pe care sistemul o caută Fișier.boot
în curent şi $ROOT/bin directoare.
Implicit la $ROOT/bin/start.boot.
-boot_var Fiecare dir:
Dacă scriptul de pornire conține o variabilă de cale Fiecare altele decât $ROOT, această variabilă este
extins la dir. Folosit atunci când aplicațiile sunt instalate în alt director decât
$ROOT/lib, A se vedea systools:make_script/1,2.
-code_path_cache:
Activează memoria cache a căii de cod a serverului de cod, vezi cod(3erl).
-compila mod1 mod2 ...:
Compilează modulele specificate și apoi se termină (cu cod de ieșire diferit de zero dacă
compilarea unor fișiere nu a reușit). implică -nicio intrare. Nerecomandat - utilizare
erlc in schimb.
-config config:
Specifică numele unui fișier de configurare, Config.config, care este folosit pentru a configura
aplicatii. Vedea aplicaţia(5) si cerere(3erl).
-connect_all fals:
Dacă acest steag este prezent, global nu va menține o rețea complet conectată de
noduri Erlang distribuite, iar apoi înregistrarea globală a numelui nu poate fi utilizată. Vedea
global(3erl).
-cookie Cookie:
Steagul învechit fără niciun efect și greșeală de ortografie comună pentru -setcookie. Utilizare -setcookie
in schimb.
-detașat:
Pornește sistemul de rulare Erlang detașat de consola de sistem. Util pentru alergare
demonii și procesele de fundal. implică -nicio intrare.
-emu_args:
Util pentru depanare. Imprimă argumentele reale trimise emulatorului.
-env Variabil Valoare:
Setează variabila de mediu a sistemului de operare gazdă Variabil la valoare Valoare pentru Erlang
sistem de rulare. Exemplu:
% erl -env DISPLAY gin:0
În acest exemplu, un sistem de rulare Erlang este pornit cu DISPLAY mediu inconjurator
variabilă setată la gin:0.
-eval Expr(steagul init):
Face înăuntru evalua expresia Expr, A se vedea înăuntru(3erl).
-suplimentar(steagul init):
Tot ce urmează -suplimentar este considerat argumente simple și poate fi preluat folosind
init:get_plain_arguments/0.
-inima:
Pornește monitorizarea bătăilor inimii a sistemului de rulare Erlang. Vedea inimă(3erl).
-ascuns:
Pornește sistemul de rulare Erlang ca nod ascuns, dacă este rulat ca nod distribuit.
Nodurile ascunse stabilesc întotdeauna conexiuni ascunse cu toate celelalte noduri, cu excepția nodurilor
în același grup global. Conexiunile ascunse nu sunt publicate pe niciunul dintre
nodurile conectate, adică niciunul dintre nodurile conectate nu face parte din rezultatul de la
noduri/0 pe celălalt nod. Vedeți și grupuri globale ascunse, grup_global(3erl).
-gazde gazdele:
Specifică adresele IP pentru gazdele pe care rulează serverele de boot Erlang, vezi
erl_boot_server(3erl). Acest steag este obligatoriu dacă -încărcător INET steag este prezent.
Adresele IP trebuie să fie date în forma standard (patru numere zecimale separate prin
perioade, de exemplu "150.236.20.74". Numele gazdelor nu sunt acceptabile, dar o emisiune
adresa (de preferință limitată la rețeaua locală) este.
-id Id:
Specifică identitatea sistemului de rulare Erlang. Dacă este rulat ca distribuit
nodul, Id trebuie să fie identic cu numele furnizat împreună cu -nume or -Yam
steag.
-init_debug:
Face înăuntru scrieți câteva informații de depanare în timp ce interpretați scriptul de pornire.
-instr(steagul emulator):
Selectează un sistem de rulare Erlang instrumentat (mașină virtuală) pentru a rula, în loc de
unul obișnuit. Când rulați un sistem de rulare instrumentat, unele date de utilizare a resurselor
pot fi obținute și analizate folosind modulul instrument. Functional, se comporta
exact ca un sistem de rulare Erlang obișnuit.
-încărcător Încărcător:
Specifică metoda utilizată de erl_prim_loader pentru a încărca modulele Erlang în sistem.
Vedea erl_prim_loader(3erl). Două Încărcător metodele sunt acceptate, efile si INET. efile
înseamnă că utilizați sistemul de fișiere local, acesta este implicit. INET înseamnă a folosi un server de pornire
altă mașină și -id, -gazde si -setcookie trebuie specificate și steaguri.
If Încărcător este altceva, a furnizat utilizatorul Încărcător programul port este pornit.
-face:
Face să invoce sistemul de rulare Erlang make:all() în directorul de lucru curent și
apoi termina. Vedea face(3erl). implică -nicio intrare.
-om Module:
Afișează pagina de manual pentru modulul Erlang Module. Acceptat numai pe Unix.
-modul interactiv | încorporat:
Indică dacă sistemul ar trebui să încarce codul dinamic (interactiv), sau dacă tot codul
ar trebui să fie încărcat în timpul inițializării sistemului (încorporat), vedea cod(3erl). Implicit la
interactiv.
-Yam Nume:
Transformă sistemul de rulare Erlang într-un nod distribuit. Acest flag invocă toată rețeaua
serverele necesare pentru ca un nod să devină distribuit. Vedea net_kernel(3erl). Este, de asemenea
asigurat că epmd rulează pe gazda curentă înainte ca Erlang să fie pornit. Vedea epmd(1).
Numele nodului va fi Nume@Gazdă, În cazul în care Gazdă este numele de gazdă complet calificat al
gazda actuală. Pentru nume scurte, utilizați -nume steag în schimb.
-nicio intrare:
Se asigură că sistemul de rulare Erlang nu încearcă niciodată să citească nicio intrare. implică
-noshell.
-noshell:
Pornește un sistem de rulare Erlang fără shell. Acest steag face posibilă existența
Sistemul de rulare Erlang ca componentă a unei serii de conducte UNIX.
-nostick:
Dezactivează facilitatea de director sticky a serverului de cod Erlang, vezi cod(3erl).
-vechea coajă:
Invocă vechiul shell Erlang din Erlang 3.3. Vechea carcasă poate fi încă folosită.
-pa Dir1 Dir2 ...:
Adaugă directoarele specificate la începutul căii codului, similar cu
cod:add_pathsa/1. Vedea cod(3erl). Ca alternativă la -pa, dacă mai multe directoare
trebuie să fie adăugate la calea codului și directoarele au un părinte comun
director, acel director părinte ar putea fi specificat în ERL_LIBS mediu inconjurator
variabil. Vedea cod(3erl).
-pz Dir1 Dir2 ...:
Adaugă directoarele specificate la sfârșitul căii codului, similar cu
cod:add_pathsz/1. Vedea cod(3erl).
-cale Dir1 Dir2 ...:
Înlocuiește calea specificată în scriptul de pornire. Vedea scenariu(5).
-proto_dist Proto:
Specificați un protocol pentru distribuția Erlang.
inet_tcp:
TCP peste IPv4 (implicit)
inet_tls:
distribuție prin TLS/SSL
inet6_tcp:
TCP peste IPv6
De exemplu, pentru a porni noduri distribuite IPv6:
% erl -nume [e-mail protejat] -proto_dist inet6_tcp
-remsh Nod:
Pornește Erlang cu un shell la distanță conectat la Nod.
-rsh Program:
Specifică o alternativă la rsh pentru pornirea unui nod slave pe o gazdă la distanță. Vedea
sclav(3erl).
-alerga Mod [Func [Arg1, Arg2, ...]](steagul init):
Face înăuntru apelați funcția specificată. func implicit la Începe. Dacă nu există argumente
cu condiția ca funcția este presupusă a fi de aritate 0. În caz contrar, se presupune că este de
aritatea 1, luând lista [Arg1,Arg2,...] ca argument. Toate argumentele sunt transmise ca
siruri de caractere. Vedea înăuntru(3erl).
-s Mod [Func [Arg1, Arg2, ...]](steagul init):
Face înăuntru apelați funcția specificată. func implicit la Începe. Dacă nu există argumente
cu condiția ca funcția este presupusă a fi de aritate 0. În caz contrar, se presupune că este de
aritatea 1, luând lista [Arg1,Arg2,...] ca argument. Toate argumentele sunt transmise ca
atomi. Vedea înăuntru(3erl).
-setcookie Cookie:
Setează cookie-ul magic al nodului la Cookie, A se vedea erlang:set_cookie/2.
-oprire_timp Timp:
Specifică cât timp (în milisecunde) este înăuntru procesul este permis să cheltuiască
închiderea sistemului. Dacă Timp ms au trecut, toate procesele încă existente sunt
ucis. Implicit la infinit.
-nume Nume:
Transformă sistemul de rulare Erlang într-un nod distribuit, similar cu -Yam, Dar
porțiunea numelui de gazdă a numelui nodului Nume@Gazdă va fi numele scurt, nu complet
calificat.
Aceasta este uneori singura modalitate de a rula Erlang distribuit dacă DNS (Nume de domeniu
System) nu rulează. Nu poate exista nicio comunicare între nodurile care rulează cu
-nume steag si cei care alearga cu -Yam flag, deoarece numele nodurilor trebuie să fie unice în
sisteme Erlang distribuite.
-smp [activare|automat|dezactivare]:
-smp permite si -smp pornește sistemul de rulare Erlang cu suportul SMP activat. Acest
poate eșua dacă nu este disponibil niciun sistem de rulare cu suport SMP. -smp Auto începe
Sistem de rulare Erlang cu suport SMP activat dacă este disponibil și mai mult de unul
procesor logic sunt detectate. -smp dezactivați pornește un sistem de rulare fără SMP
sprijini.
NOTĂ: Sistemul de rulare cu suport SMP nu va fi disponibil pe toate cele acceptate
platforme. Vezi și +S steag.
-versiune(steagul emulator):
Face ca emulatorul să-și imprime numărul de versiune. La fel ca Erl +V.
EMULATOR FLAGURI
Erl invocă codul pentru emulatorul Erlang (mașină virtuală), care acceptă
urmatoarele steaguri:
+a mărimea:
Dimensiunea sugerată a stivei, în kilocuvinte, pentru firele din grupul de fire asincrone. Interval valid
este de 16-8192 kilocuvinte. Dimensiunea implicită sugerată a stivei este de 16 kilocuvinte, adică 64
kilobyte pe arhitecturi pe 32 de biți. Această dimensiune implicită mică a fost aleasă începând cu
cantitatea de fire asincrone ar putea fi destul de mare. Dimensiunea implicită este suficientă pentru șoferi
livrat cu Erlang/OTP, dar s-ar putea să nu fie suficient de mare pentru alții dinamic
conectat în driverele care utilizează driver_async() funcţionalitate. Rețineți că valoarea
trecut este doar o sugestie și poate chiar să fie ignorat pe unele platforme.
+A mărimea:
Setează numărul de fire în pool-ul de fire asincrone, intervalul valid este 0-1024. Dacă firul
suportul este disponibil, valoarea implicită este 10.
+B [c | d | i]:
c opțiunea face Ctrl-C întrerupeți shell-ul curent în loc să invocați emulatorul
manevrător de rupere. The d opțiunea (la fel ca și specificarea +B fără o opțiune suplimentară) dezactivează
manevrătorul pauzei. The i opțiunea face ca emulatorul să ignore orice semnal de întrerupere.
În cazul în care c opțiunea este folosită cu coajă veche pe Unix, Ctrl-C va reporni procesul shell
mai degrabă decât să o întrerupă.
Rețineți că pe Windows, acest indicator este valabil numai pentru lume, Nu Erl (coajă veche). Notă
de asemenea că Ctrl-Break este folosit în loc de Ctrl-C pe Windows.
+c adevărat | fals:
Activați sau dezactivați timp corecţie:
adevărat:
Activați corecția timpului. Aceasta este valoarea implicită dacă corecția de timp este acceptată pe
platformă specifică.
fals:
Dezactivați corecția timpului.
Pentru compatibilitate inversă, valoarea booleană poate fi omisă. Acest lucru este interpretat ca
+c fals.
+C no_time_warp | single_time_warp | multi_time_warp:
set timp urzeală mod:
no_time_warp:
Nu Timp Urzeală mod (implicit)
single_time_warp:
Singur Timp Urzeală mod
multi_time_warp:
Multi Timp Urzeală mod
+d:
Dacă emulatorul detectează o eroare internă (sau rămâne fără memorie), o va face implicit
generează atât un crash dump, cât și un core dump. Totuși, depozitul de miez nu va fi foarte
util, deoarece conținutul grămezilor de proces este distrus de generarea crash dump.
+d opțiunea instruiește emulatorul să producă doar un dump de bază și nici un dump de blocare dacă
este detectată o eroare internă.
apel erlang:halt/1 cu un argument șir va produce în continuare un dump de blocare. Pe Unix
sisteme, trimiterea unui proces emulator a unui semnal SIGUSR1 va forța, de asemenea, o descărcare în caz de accident.
+e Număr:
Setați numărul maxim de tabele ETS.
+ec:
Forțează comprimat opțiune pe toate tabelele ETS. Destinat doar pentru testare și evaluare.
+fnl:
VM funcționează cu nume de fișiere ca și cum ar fi codificate folosind codarea ISO-latin-1,
interzicerea caracterelor Unicode cu puncte de cod peste 255.
Vedea STDLIB Al utilizatorului Ghid pentru mai multe informații despre numele fișierelor Unicode. Rețineți că aceasta
valoarea se aplică și parametrilor liniei de comandă și variabilelor de mediu (vezi STDLIB
Al utilizatorului Ghid).
+fnu[{w|i|e}]:
VM funcționează cu nume de fișiere ca și cum ar fi codificate folosind UTF-8 (sau alt sistem
codificare specifică Unicode). Aceasta este valoarea implicită pentru sistemele de operare care aplică
Codificare Unicode, adică Windows și MacOS X.
+fnu comutatorul poate fi urmat de w, i, e pentru a controla modul în care fișierul codificat greșit
numele trebuie raportate. w înseamnă că un avertisment este trimis către error_logger oricând
un nume de fișier codat greșit este „sărit” în listele de directoare, i înseamnă că acelea
numele de fișiere codificate greșit sunt ignorate în tăcere și e înseamnă că funcția API va
returnează o eroare ori de câte ori se întâlnește un nume de fișier (sau director) codificat greșit. w
este implicit. Rețineți că fișier:read_link/1 va returna întotdeauna o eroare dacă linkul
indică un nume de fișier nevalid.
Vedea STDLIB Al utilizatorului Ghid pentru mai multe informații despre numele fișierelor Unicode. Rețineți că aceasta
valoarea se aplică și parametrilor liniei de comandă și variabilelor de mediu (vezi STDLIB
Al utilizatorului Ghid).
+fna[{w|i|e}]:
Selectie intre +fnl si +fnu se face pe baza setărilor locale actuale din
OS, ceea ce înseamnă că, dacă ați setat terminalul pentru codificarea UTF-8, sistemul de fișiere este
se așteaptă să folosească aceeași codificare pentru numele fișierelor. Acesta este implicit pentru toate operațiunile
sisteme, cu excepția MacOS X și Windows.
+fna comutatorul poate fi urmat de w, i, e. Acest lucru va avea efect dacă localitatea
setările cauzează comportamentul de +fnu pentru a fi selectat. Vezi descrierea lui +fnu de mai sus.
Dacă setările locale cauzează comportamentul lui +fnl pentru a fi selectat, atunci w, i, e voi
nu au niciun efect.
Vedea STDLIB Al utilizatorului Ghid pentru mai multe informații despre numele fișierelor Unicode. Rețineți că aceasta
valoarea se aplică și parametrilor liniei de comandă și variabilelor de mediu (vezi STDLIB
Al utilizatorului Ghid).
+hms Mărimea:
Setează dimensiunea heap implicită a proceselor la dimensiunea Mărimea.
+hmbs Mărimea:
Setează dimensiunea implicită a heapului virtual binar a proceselor la dimensiunea Mărimea.
+hpds Mărimea:
Setează dimensiunea inițială a dicționarului de proces a proceselor la dimensiunea Mărimea.
+K adevărat | fals:
Activează sau dezactivează funcționalitatea de sondare a nucleului dacă emulatorul o acceptă. Mod implicit
is fals (dezactivat). Dacă emulatorul nu acceptă sondajul de kernel, și +K steag este
transmis la emulator, este emis un avertisment la pornire.
+l:
Activează urmărirea încărcării automate, afișând informații în timpul încărcării codului.
+L:
Nu încărcați informații despre numele fișierelor sursă și numerele de rând. Acest lucru va salva unii
memorie, dar excepțiile nu vor conține informații despre numele și linia fișierelor
numere.
+MFlag Valoare:
Steaguri specifice alocătorului de memorie, vezi erts_alloc(3erl) pentru mai multe informații.
+n Comportament:
Comportamentul de control al semnalelor către porturi.
Începând cu OTP-R16, semnalele către porturi sunt livrate cu adevărat asincron. Rețineți că semnalele
au fost întotdeauna documentate ca asincrone. Implementarea de bază are,
cu toate acestea, anterior furnizau aceste semnale sincron. Erlang scris corect
programele ar trebui să poată face față acestui lucru fără probleme. Bug-uri în Erlang existent
programele care fac presupuneri false despre semnalele către porturi pot fi totuși dificile
găsi. Acest comutator a fost introdus pentru a face cel puțin mai ușor de comparat
comportamente în timpul unei perioade de tranziție. Rețineți că acest pavilion is depreciată ca din ea
introducere și este programată pentru eliminare în OTP-R17. Comportament ar trebui să fie unul dintre
urmatoarele personaje:
d:
Implicit. Semnale asincrone. Un proces care trimite un semnal către un port poate
continuați execuția înainte ca semnalul să fie livrat în port.
s:
Semnale sincrone. Un proces care trimite un semnal către un port nu va continua
execuție până la livrarea semnalului. Ar trebui să fi folosit pentru testare și
depanare.
a:
Semnale asincrone. Ca implicit, dar un proces care trimite un semnal va chiar
mai frecvent continuă execuția înainte ca semnalul să fie livrat în port.
Să să fie utilizat pentru testare și depanare.
+buc Gamă:
Setează intervalul de caractere pe care sistemul le va considera imprimabile în euristică
detectarea șirurilor. Acest lucru afectează de obicei shell, debugger și io:format
funcții (când se folosește ~tp în șirul de format).
În prezent, două valori pentru Gamă sunt acceptate:
latin1:
Implicit. Numai caracterele din intervalul ISO-latin-1 pot fi considerate imprimabile,
ceea ce înseamnă că un caracter cu un punct de cod > 255 nu va fi niciodată luat în considerare
imprimabile și că listele care conțin astfel de caractere vor fi afișate ca liste de
numere întregi mai degrabă decât șiruri de text prin instrumente.
unicode:
Toate caracterele Unicode imprimabile sunt luate în considerare atunci când se determină dacă o listă de
numerele întregi vor fi afișate în sintaxa șirurilor. Acest lucru poate da rezultate neașteptate dacă
de exemplu fontul dvs. nu acoperă toate caracterele Unicode.
Se de asemenea io:printable_range/0.
+P Număr|moștenire:
Setează numărul maxim de procese existente simultan pentru acest sistem dacă a
Număr este transmisă ca valoare. Interval valabil pentru Număr is [1024-134217727]
NOTĂ: Maximul real ales poate fi mult mai mare decât Număr a trecut. În prezent
sistemul de rulare adesea, dar nu întotdeauna, alege o valoare care este o putere de 2. Aceasta
ar putea fi totuși modificată în viitor. Valoarea reală aleasă poate fi verificată de
apel erlang:system_info(process_limit).
Valoarea implicită este 262144
If moştenire este transmis ca valoare, algoritmul moștenit pentru alocarea procesului
vor fi utilizați identificatori. Folosind algoritmul moștenit, identificatorii vor fi alocați în
o modă în creștere strictă până când se ajunge la cel mai mare identificator posibil. Notă
că acest algoritm suferă de probleme de performanță și poate sub anumite
circumstanțele să fie extrem de costisitoare. Algoritmul moștenit este depreciat și
moştenire opțiunea este programată pentru eliminare în OTP-R18.
+Q Număr|moștenire:
Setează numărul maxim de porturi existente simultan pentru acest sistem dacă este un Număr
este transmisă ca valoare. Interval valabil pentru Număr is [1024-134217727]
NOTĂ: Maximul real ales poate fi mult mai mare decât cel real Număr a trecut.
În prezent, sistemul de rulare alege adesea, dar nu întotdeauna, o valoare care este o putere
2. Acest lucru ar putea fi, totuși, schimbat în viitor. Valoarea reală aleasă poate fi
verificat prin apelare erlang:system_info(port_limit).
Valoarea implicită utilizată este în mod normal 65536. Cu toate acestea, dacă sistemul de rulare este capabil
determinați cantitatea maximă de descriptori de fișier pe care este permis să-i deschidă și această valoare
este mai mare decât 65536, valoarea aleasă va crește la o valoare mai mare sau egală cu
cantitatea maximă de descriptori de fișiere care pot fi deschise.
Pe Windows, valoarea implicită este setată la 8196 deoarece sunt setate limitările normale ale sistemului de operare
mai mare decât pot suporta majoritatea mașinilor.
Anterior variabila de mediu ERL_MAX_PORTS a fost folosit pentru setarea maximului
numărul de porturi existente simultan. Această variabilă de mediu este depreciată și
programat pentru eliminare în OTP-R17, dar poate fi folosit în continuare.
If moştenire este transmis ca valoare, algoritmul moștenit pentru alocarea identificatorilor de port
va fi folosit. Folosind algoritmul moștenit, identificatorii vor fi alocați strict
modei crescând până când se ajunge la cel mai mare identificator posibil. Rețineți că aceasta
algoritmul suferă de probleme de performanță și poate fi în anumite circumstanțe
extrem de scumpe. Algoritmul moștenit este depreciat și moştenire opțiunea este
programată pentru îndepărtare în OTP-R18.
+R ReleaseNumber:
Setează modul de compatibilitate.
Mecanismul de distribuție nu este compatibil înapoi în mod implicit. Acest steag setează
emulator în modul de compatibilitate cu o versiune anterioară Erlang/OTP ReleaseNumber.
numărul de lansare trebuie să fie în interval <curent eliberare>-2.. eliberare>. Acest
limitează emulatorul, făcându-i posibilă comunicarea cu nodurile Erlang (cum ar fi
precum și nodurile C- și Java) care rulează versiunea anterioară.
Notă: Asigurați-vă că toate nodurile (nodurile Erlang-, C- și Java) ale unui sistem Erlang distribuit
este din aceeași versiune Erlang/OTP sau din două versiuni Erlang/OTP diferite X și Y,
Unde toate Nodurile Y au modul de compatibilitate X.
+r:
Forțați blocul de memorie ets să fie mutat pe realloc.
+rg ReaderGroupsLimit:
Limitează numărul de grupuri de cititori utilizate de blocările de citire/scriere optimizate pentru citire
operațiuni în sistemul de rulare Erlang. În mod implicit, limita grupurilor de cititori este egală cu 64.
Când numărul de programatori este mai mic sau egal cu limita grupurilor de cititori, fiecare
planificatorul are propriul grup de cititori. Când numărul de programatori este mai mare decât
grupuri de cititori limitează, programatorii partajează grupuri de cititori. Grupurile de cititori partajate se degradează
Performanța de blocare a citirii și deblocare a citirii în timp ce o cantitate mare de grupuri de cititori se degradează
performanța de blocare a scrierii, astfel încât limita este un compromis între performanța pentru citire
operații și performanță pentru operațiuni de scriere. Fiecare grup de cititori consumă în prezent
64 de octeți în fiecare blocare de citire/scriere. De asemenea, rețineți că un sistem de rulare care utilizează cititor partajat
grupurile beneficiază de legare programatori la logic procesoare, din moment ce cititorii se grupează
sunt distribuite mai bine între programatori.
+S Programatori:SchedulerOnline:
Setează numărul de fire de planificare de creat și de fire de planificare de setat online
când a fost activat suportul SMP. Maximul pentru ambele valori este 1024. Dacă Erlang
sistemul runtime este capabil să determine cantitatea de procesoare logice configurate și
procesoare logice disponibile, Programatori implicit la procesoare logice
configurat și SchedulersOnline va utiliza implicit procesoarele logice disponibile;
în caz contrar, valorile implicite vor fi 1. Programatori poate fi omis dacă :SchedulerOnline
nu este și invers. Numărul de programatori online poate fi modificat în timpul rulării prin
erlang:system_flag(schedulers_online, Programatori online).
If Programatori or SchedulersOnline este specificat ca un număr negativ, valoarea este
scăzut din numărul implicit de procesoare logice configurate sau logice
procesoare disponibile, respectiv.
Specificarea valorii 0 pentru Programatori or SchedulersOnline resetează numărul de
fire de execuție de planificare sau fire de execuție online, respectiv, la valoarea implicită.
Această opțiune este ignorată dacă emulatorul nu are suportul SMP activat (consultați documentul -smp
steag).
+SP SchedulersPercentage:SchedulersOnlinePercentage:
similar +S dar folosește procente pentru a seta numărul de fire de planificare de creat,
bazat pe procesoarele logice configurate și firele de execuție de planificare pe care să se seteze online, pe baza
procesoare logice disponibile, atunci când suportul SMP a fost activat. Valorile specificate trebuie
să fie mai mare decât 0. De exemplu, +SP 50:25 setează numărul de fire de planificare la 50%
dintre procesoarele logice configurate și numărul de fire de planificare online la 25%
dintre procesoarele logice disponibile. SchedulersProcentage poate fi omis dacă
:SchedulersOnlinePercentage nu este și invers. Numărul de programatori online poate
fi schimbat în timpul rulării prin erlang:system_flag(schedulers_online, Programatori online).
Această opțiune interacționează cu +S setări. De exemplu, pe un sistem cu 8 nuclee logice
configurat și 8 nuclee logice disponibile, combinația de opțiuni +S 4:4 +SP
50:25 (în oricare ordine) rezultă 2 fire de planificare (50% din 4) și 1 programator
thread online (25% din 4).
Această opțiune este ignorată dacă emulatorul nu are suportul SMP activat (consultați documentul -smp
steag).
+SDcpu DirtyCPUSchedulers:DirtyCPUSchedulersOnline:
Setează numărul de fire de execuție de planificare CPU murdare pentru a crea și planificatorul CPU murdar
fire pentru a seta online atunci când suportul threading a fost activat. Maximul pentru ambele
valorile sunt 1024 și fiecare valoare este limitată suplimentar de setările pentru normal
programatori: numărul de fire de execuție de planificare a CPU murdare create nu poate depăși numărul
de fire de execuție de planificare normale create și numărul de fire de execuție de planificare a CPU murdare
online nu poate depăși numărul de fire de planificare normale online (consultați +S si +SP
steaguri pentru mai multe detalii). În mod implicit, numărul de fire de execuție de planificare a CPU murdare create
este egal cu numărul de fire de execuție de planificare obișnuite create și cu numărul de CPU murdar
fire de execuție online este egală cu numărul de fire de execuție online normale.
DirtyCPUSschedulers poate fi omis dacă :DirtyCPUSchedulersOnline nu este și invers.
Numărul de programatoare de CPU murdare online poate fi schimbat în timpul rulării prin
erlang:system_flag(dirty_cpu_schedulers_online, DirtyCPUSschedulersOnline).
Această opțiune este ignorată dacă emulatorul nu are activat suportul pentru threading.
În prezent, acest opțiune is experimental și este suportat numai dacă emulatorul a fost
configurat și construit cu suport pentru programatori murdari activat (este dezactivat de
Mod implicit).
+SDPcpu DirtyCPUSchedulersPercentage: DirtyCPUSchedulersOnlinePercentage:
similar +SDcpu dar folosește procente pentru a seta numărul de programator CPU murdar
fire de execuție de creat și numărul de fire de execuție de planificare CPU murdare de setat online când
Suportul pentru threading a fost activat. Valorile specificate trebuie să fie mai mari decât 0. Pentru
exemplu, +SDPcpu 50:25 setează numărul de fire de execuție de planificare a CPU murdare la 50% din
procesoarele logice configurate și numărul de fire de execuție de planificare CPU murdare online la
25% dintre procesoarele logice disponibile. DirtyCPUSschedulersProcentage poate fi omis
if :DirtyCPUSschedulersOnlinePercentage nu este și invers. Numărul de CPU murdar
programatoarele online pot fi modificate în timpul rulării prin
erlang:system_flag(dirty_cpu_schedulers_online, DirtyCPUSschedulersOnline).
Această opțiune interacționează cu +SDcpu setări. De exemplu, pe un sistem cu 8 logic
nuclee configurate și 8 nuclee logice disponibile, combinația de opțiuni +SDcpu
4:4 +SDPcpu 50:25 (în oricare ordine) are ca rezultat 2 fire de execuție de planificare a CPU murdare (50% din
4) și 1 thread de planificare CPU murdar online (25% din 4).
Această opțiune este ignorată dacă emulatorul nu are activat suportul pentru threading.
În prezent, acest opțiune is experimental și este suportat numai dacă emulatorul a fost
configurat și construit cu suport pentru programatori murdari activat (este dezactivat de
Mod implicit).
+SDio IOSchedulers:
Setează numărul de fire de execuție de planificare I/O murdare de creat atunci când are suport pentru fire
fost activat. Intervalul valid este 0-1024. În mod implicit, numărul de planificator I/O murdar
firele create este 10, la fel ca numărul implicit de fire din async fir piscină
.
Această opțiune este ignorată dacă emulatorul nu are activat suportul pentru threading.
În prezent, acest opțiune is experimental și este suportat numai dacă emulatorul a fost
configurat și construit cu suport pentru programatori murdari activat (este dezactivat de
Mod implicit).
+sDrapel Valoare:
Programarea unor steaguri specifice.
+sbt BindType:
Setați tipul de legare a planificatorului.
Programatorii pot fi, de asemenea, legați folosind +stbt steag. Singura diferență între acestea
două steaguri este modul în care sunt gestionate următoarele erori:
* Legarea programatorilor nu este acceptată pe platforma specifică.
* Nu există o topologie CPU disponibilă. Aceasta este sistemul de rulare nu a putut
a detectat automat topologia CPU și nu utilizator definit Procesor topologie a fost setat.
Dacă oricare dintre aceste erori apare când +sbt a fost trecut, sistemul de rulare va
imprimați un mesaj de eroare și refuzați să porniți. Dacă oricare dintre aceste erori apare când +stbt
a fost trecut, sistemul de rulare va ignora în tăcere eroarea și va porni
folosind programatori nelegați.
Valabil în prezent BindTypes:
u:
nelegat - Schedulerii nu vor fi legați de procesoare logice, adică de operare
sistemul decide unde se execută firele de execuție și când să le migreze. Acest
este implicit.
ns:
fără împrăștiere - Programatorii cu identificatori apropiați de planificator vor fi legați la fel de aproape
posibil în hardware.
ts:
thread_spread - Thread se referă la firele hardware (de exemplu, hyper-thread-urile Intel).
Programatorii cu identificatori de planificator scăzut, vor fi legați la primul hardware
thread-ul fiecărui nucleu, atunci vor fi programatorii cu identificatori mai mari de planificator
legat de al doilea fir hardware al fiecărui miez etc.
ps:
procesor_spread - Agendele vor fi răspândite ca thread_spread, dar și peste
cipuri de procesor fizic.
s:
răspândire - Agendele vor fi răspândite pe cât posibil.
nnts:
no_node_thread_spread - Cum ar fi thread_spread, dar dacă mai multe NUMA (Neuniform
Memory Access) există, programatorii vor fi împărțiți pe un nod NUMA la a
timp, adică toate procesoarele logice ale unui nod NUMA vor fi legate la programatori în
secvenţă.
nnps:
no_node_processor_spread - Cum ar fi procesor_spread, dar dacă mai multe noduri NUMA
există, programatorii vor fi împărțiți pe un singur nod NUMA la un moment dat, adică toate logice
procesoarele unui nod NUMA vor fi legate la programatori în secvență.
tnnps:
thread_no_node_processor_spread - O combinație de thread_spread și
no_node_processor_spread. Planificatoarele vor fi răspândite pe firele hardware
Nodurile NUMA, dar programatoarele vor fi împărțite doar pe procesoare intern într-unul singur
Nod NUMA la un moment dat.
db:
default_bind - Leagă programatorii în modul implicit. În prezent, implicit este
thread_no_node_processor_spread (care s-ar putea schimba în viitor).
Legarea programatoarelor este acceptată în prezent numai pe Linux, Solaris, FreeBSD mai nou,
și sisteme Windows.
Dacă nu este disponibilă nicio topologie CPU atunci când +sbt steag este procesat și BindType este ceva
alt tip decât u, sistemul de rulare nu va porni. Topologia CPU poate fi
definit folosind +sct steag. Rețineți că +sct steagul poate fi trecut înainte
il +sbt flag pe linia de comandă (în cazul în care nicio topologie CPU nu a fost automată
detectat).
Sistemul de rulare va fi implicit nu legați programatorii de procesoare logice.
NOTĂ: Dacă sistemul de rulare Erlang este singurul proces al sistemului de operare care se leagă
fire la procesoare logice, aceasta îmbunătățește performanța sistemului de rulare.
Cu toate acestea, dacă alt sistem de operare procesează (cum ar fi, de exemplu, un alt runtime Erlang
sistem) leagă și fire de execuție la procesoare logice, ar putea exista o performanță
pedeapsa în schimb. În unele cazuri, această penalizare de performanță poate fi severă. Dacă aceasta este
În acest caz, vă sfătuiți să nu legați programatorii.
Modul în care sunt legați programatorii contează. De exemplu, în situațiile în care sunt mai puține
care rulează procese decât programatorii online, sistemul de rulare încearcă să migreze
procese către programatori cu identificatori de planificator scăzut. Cu cât planificatorii sunt mai mulți
răspândit pe hardware, cu atât mai multe resurse vor fi disponibile pentru sistemul de rulare
în astfel de situații.
NOTĂ: Dacă un planificator nu reușește să se lege, acest lucru va fi adesea ignorat în tăcere. Aceasta din moment ce
nu este întotdeauna posibil să se verifice identificatorii de procesor logic valid. Dacă o eroare
este raportat, acesta va fi raportat către error_logger. Dacă doriți să verificați că
programatorii de fapt s-au legat conform solicitării, sunați
erlang:system_info(scheduler_bindings).
+sbwt nici unul|foarte_scurt|scurt|mediu|lung|foarte_lung:
Setați pragul de așteptare ocupat al programatorului. Implicit este mediu. Pragul determină cum
programatorii lungi ar trebui să aștepte când rămân fără muncă înainte de a merge la culcare.
NOTĂ: Acest steag poate fi eliminat sau modificat în orice moment fără notificare prealabilă.
+scl adevărat|fals:
Activați sau dezactivați compactarea sarcinii programatorului. În mod implicit, compactarea planificatorului a
încărcarea este activată. Când este activată, echilibrarea sarcinii se va strădui pentru o distribuție a sarcinii
ceea ce face ca cât mai multe fire de execuție de planificare să fie complet încărcate (adică să nu ruleze
fără muncă). Acest lucru se realizează prin migrarea încărcării (de exemplu, procese care pot fi executate) în
un set mai mic de programatori, atunci când programatorii rămân frecvent fără muncă. Când
dezactivată, frecvența cu care programatorii rămân fără muncă nu va fi luată în considerare
cont de logica de echilibrare a sarcinii.
+scl fals este similar cu +sub adevărat cu deosebirea că +sub adevărat de asemenea
echilibrarea utilizării programatorului între programatori.
+sct CpuTopology:
* = întreg(); cand 0 =< =< 65535
* = -
* = |
* = , |
* = L
* = T | t
* = C | c
* = P | p
* = N | n
* = |
* CpuTopology = : |
Setați o topologie CPU definită de utilizator. Topologia CPU definită de utilizator va înlocui orice
topologia CPU detectată automat. Topologia CPU este utilizată când legare
programatori la logic procesoare.
Literele mari înseamnă identificatori reali, iar literele mici înseamnă fals
identificatori utilizați numai pentru descrierea topologiei. Identificatorii au trecut ca reali
identificatorii pot fi utilizați de sistemul de rulare atunci când încearcă să acceseze anumite
hardware și dacă nu sunt corecte comportamentul este nedefinit. CPU logic fals
identificatorii nu sunt acceptați, deoarece nu are rost să definiți topologia CPU
fără identificatori logici reali de CPU. Identificatori de fir, nucleu, procesor și nod
poate fi omis. Dacă este omis, id-ul firului este implicit t0, core id-ul este implicit c0,
ID-ul procesorului este implicit p0, iar id-ul nodului va rămâne nedefinit. Fie fiecare logic
procesorul trebuie să aparțină unui singur nod NUMA sau niciun procesor logic nu trebuie să aparțină
aparțin oricăror noduri NUMA.
Atât în creștere, cât și în scădere sunt permise.
Identificatorii de nod NUMA sunt la nivelul întregului sistem. Adică, fiecare nod NUMA din sistem trebuie să
au un identificator unic. Identificatorii procesorului sunt, de asemenea, la nivel de sistem. Miez
identificatorii sunt la nivelul procesorului. Identificatorii de fire sunt la nivelul întregului nucleu.
Ordinea tipurilor de identificatori implică ierarhia topologiei CPU. Valabil
comenzile sunt fie ,
. Adică firul face parte
un nucleu care face parte dintr-un procesor care face parte dintr-un nod NUMA, sau un fir este o parte
a unui nucleu care face parte dintr-un nod NUMA care face parte dintr-un procesor. O topologie CPU
poate consta atât din noduri NUMA externe ale procesorului, cât și din interiorul procesorului atât timp cât
fiecare procesor logic aparține unui singur nod NUMA. Dacă is
lăsat afară, poziția sa implicită va fi înainte . Adică, implicit este
noduri NUMA externe ale procesorului.
Dacă o listă de identificatori este utilizată într-un :
* trebuie să fie o listă de identificatori.
* Cel puțin un alt tip de identificator în afară de trebuie să aibă și o
lista de identificatori.
* Toate listele de identificatori trebuie să producă aceeași cantitate de identificatori.
Un exemplu simplu. Un singur procesor quad core poate fi descris astfel:
% erl +sct L0-3c0-3
1> erlang:system_info(cpu_topology).
[{procesor,[{core,{logic,0}},
{core,{logic,1}},
{core,{logic,2}},
{core,{logic,3}}]}]
Un exemplu puțin mai complicat. Două procesoare quad core. Fiecare procesor în el
propriul nod NUMA. Ordinea procesoarelor logice este puțin ciudată. Asta in ordine
pentru a da un exemplu mai bun de liste de identificatori:
% erl +sct L0-1,3-2c0-3p0N0:L7,4,6-5c0-3p1N1
1> erlang:system_info(cpu_topology).
[{nod,[{procesor,[{core,{logic,0}},
{core,{logic,1}},
{core,{logic,3}},
{core,{logic,2}}]}]},
{nod,[{procesor,[{core,{logic,7}},
{core,{logic,4}},
{core,{logic,6}},
{core,{logic,5}}]}]}]
Atâta timp cât identificatorii reali sunt corecti, este bine să treceți o topologie CPU care este
nu este o descriere corectă a topologiei CPU. Când este folosit cu grijă, acest lucru poate de fapt
fi foarte util. Acest lucru pentru a păcăli emulatorul să își leagă programatorii ca tine
vrei. De exemplu, dacă doriți să rulați mai multe sisteme de rulare Erlang pe același
mașină, doriți să reduceți cantitatea de programatoare utilizate și să manipulați CPU
topologie astfel încât acestea să se leagă de procesoare logice diferite. Un exemplu, cu două Erlang
sisteme de rulare pe o mașină cu patru nuclee:
% erl +sct L0-3c0-3 +sbt db +S3:2 -detached -noinput -noshell -sname one
% erl +sct L3-0c0-3 +sbt db +S3:2 -detached -noinput -noshell -sname two
În acest exemplu, fiecare sistem de rulare are câte două programatoare online, și toate
programatoarele online vor rula pe diferite nuclee. Dacă trecem la un singur programator online
pe un sistem de rulare și trei programatori online pe celălalt, toate programatoarele
online va funcționa în continuare pe nuclee diferite.
Rețineți că o topologie CPU falsă care nu reflectă cum arată topologia CPU reală
ca este probabil să scadă performanța sistemului de rulare.
Pentru mai multe informații, consultați erlang:system_info(cpu_topology).
+secio adevărat|fals:
Activați sau dezactivați programarea I/O a verificării dornice. Valoarea implicită este în prezent adevărat.
implicit a fost schimbat de la fals la adevărat începând cu versiunea erts 7.0. Comportamentul de dinainte
acest steag a fost introdus corespunde +secio fals.
Indicatorul se efectuează atunci când programatorii vor verifica operațiunile I/O posibil de executat,
și când se vor executa astfel de operațiuni I/O. După cum sugerează numele parametrului,
programatorii vor fi mai dornici să verifice I/O când adevărat a trecut. Aceasta însă
implică, de asemenea, că execuția operațiunii I/O restante nu va avea prioritate
în aceeași măsură ca atunci când fals a trecut.
erlang:system_info(eager_check_io) returnează valoarea acestui parametru folosit când
pornind VM-ul.
+ sfwi Interval:
Setați intervalul de trezire forțat al programatorului. Toate cozile de rulare vor fi scanate fiecare Interval
milisecunde. În timp ce în sistem există programatori de dormit, un programator va avea loc
fi trezit pentru fiecare coadă de rulare negoală găsită. Un Interval de zero dezactivează acest lucru
caracteristică, care este și cea implicită.
Această caracteristică a fost introdusă ca o soluție temporară pentru native cu execuție îndelungată
codul și codul nativ care nu depășește corect reducerile în OTP. Când aceste bug-uri
au fost fixate + sfwi steag va fi eliminat.
+stbt BindType:
Încercați să setați tipul de legare a planificatorului. La fel ca +sbt steag cu excepţia modului
unele erori sunt tratate. Pentru mai multe informații, consultați documentația +sbt
steag.
+sub adevărat|fals:
Activați sau dezactivați Scheduler folosire echilibrarea sarcinii. În mod implicit, programatorul
echilibrarea utilizării este dezactivată și, în schimb, compactarea încărcăturii de planificator este
activat, care se va strădui pentru o distribuție a încărcăturii care provoacă cât mai mulți planificatori
firele cât posibil să fie încărcate complet (adică să nu rămână fără lucru). Când planificator
echilibrarea utilizării este activată, sistemul va încerca în schimb să echilibreze planificatorul
utilizarea între programatori. Adică, străduiți-vă pentru utilizarea egală a programatorului
toți programatorii.
+sub adevărat este acceptat numai pe sistemele în care sistemul runtime detectează și utilizează a
creșterea monoton a ceasului de înaltă rezoluție. Pe alte sisteme, sistemul runtime
nu va începe.
+sub adevărat implică +scl fals. Diferența dintre +sub adevărat si +scl fals is
acea +scl fals nu va încerca să echilibreze utilizarea planificatorului.
+swct foarte_dornic|dornic|mediu|lene|foarte_lene:
Setați pragul de curățare a programului de trezire. Implicit este mediu. Acest steag controlează cum
Programatorii dornici ar trebui să solicite trezire din cauza anumitor operațiuni de curățare.
Când se utilizează o setare leneșă, mai multe operațiuni de curățare remarcabile pot fi lăsate nerealizate
în timp ce un planificator este inactiv. Când se folosește o setare nerăbdătoare, programatorii vor mai mult
să fie trezit frecvent, ceea ce poate crește utilizarea CPU-ului.
NOTĂ: Acest steag poate fi eliminat sau modificat în orice moment fără notificare prealabilă.
+sws implicit|moștenire:
Setați strategia de trezire a programatorului. Strategia implicită schimbată în erts-5.10/OTP-R16A. Acest
strategia era cunoscută anterior ca propunere în OTP-R15. The moştenire a fost folosită strategia
implicit de la R13 până la R15 inclusiv.
NOTĂ: Acest steag poate fi eliminat sau modificat în orice moment fără notificare prealabilă.
+swt foarte_scazut|scazut|mediu|ridicat|foarte_ridicat:
Setați pragul de trezire al programatorului. Implicit este mediu. Pragul determină când
treziți programatorii adormiți când mai multă muncă decât poate fi gestionată de treaz în prezent
programatori există. Un prag scăzut va provoca treziri mai devreme și un prag ridicat
va provoca treziri ulterioare. Trezirile timpurii vor distribui munca pe mai multe
programatorii mai rapid, dar munca va trece mai ușor între programatori.
NOTĂ: Acest steag poate fi eliminat sau modificat în orice moment fără notificare prealabilă.
+ spp boolean:
Setați indicația de planificare implicită pentru paralelismul portului. Dacă este setat la adevărat, VM-ul va
programarea sarcinilor de port atunci când faceți acest lucru va îmbunătăți paralelismul în sistem. Dacă este setat la
fals, VM-ul va încerca să efectueze sarcini de port imediat, îmbunătățind latența la
cheltuiala paralelismului. Dacă acest indicator nu a fost trecut, indicația implicită de planificare
pentru paralelism port este în prezent fals. Valoarea implicită utilizată poate fi inspectată în
runtime prin apelare erlang:system_info(port_parallelism). Implicit poate fi
suprascris la crearea portului prin trecerea paralelism opțiunea pentru deschide_port/2.
+sss mărimea:
Dimensiunea sugerată a stivei, în kilocuvinte, pentru firele de execuție de planificare. Intervalul valid este 4-8192
kilocuvinte. Dimensiunea implicită a stivei depinde de sistemul de operare.
+t mărimea:
Setați numărul maxim de atomi pe care VM-ul poate gestiona. Implicit este 1048576.
+T Nivel:
Activează sincronizarea modificată și setează nivelul de sincronizare modificat. Intervalul valabil în prezent este
0-9. Timpul sistemului de rulare se va schimba. Un nivel înalt înseamnă de obicei a
schimbare mai mare decât un nivel scăzut. Modificarea timpului poate fi foarte utilă pentru găsire
erori legate de sincronizare.
În prezent, sincronizarea modificată afectează următoarele:
Proces depunerea icrelor:
O chemare de proces icre, spawn_link, spawn_monitor, spawn_opt vor fi programate
afară imediat după finalizarea apelului. Când sunt mai mari niveluri de sincronizare modificate
utilizat, apelantul va dormi, de asemenea, o perioadă după ce a fost programat.
Context reduceri:
Cantitatea de reduceri pe care un proces poate fi utilizat înainte de a fi programat este
crescut sau redus.
Intrare reduceri:
Cantitatea de reduceri efectuate înainte de verificarea I/O este crescută sau redusă.
NOTĂ: Performanța va avea de suferit atunci când sincronizarea modificată este activată. Acest steag este
destinate testării și depanării. De asemenea, rețineți că intoarce-te si întoarcere_de la urmări
mesajele se vor pierde la urmărirea pe BIF-urile de spawn. Acest steag poate fi eliminat sau
schimbat în orice moment fără notificare prealabilă.
+V:
Face ca emulatorul să-și imprime numărul de versiune.
+v:
Verbos.
+W w | i | e:
Setează maparea mesajelor de avertizare pentru error_logger. Mesaje trimise la eroare
loggerul care utilizează una dintre rutinele de avertizare poate fi mapat fie la erori (+W e),
Avertizări (+W w), sau rapoarte de informații (+W i). Valoarea implicită este avertismentele. Maparea curentă
poate fi recuperat folosind error_logger:warning_map/0. Vedea error_logger(3erl) pentru mai multe
informaţii.
+zFlag Valoare:
Steaguri diverse.
+zdbbl mărimea:
Setați limita de ocupare a bufferului de distribuție (dist_buf_busy_limit) în kiloocteți. Valabil
intervalul este 1-2097151. Implicit este 1024.
O limită mai mare a memoriei tampon va permite proceselor să tamponeze mai multe mesaje de ieșire peste
distributie. Când limita buffer-ului a fost atinsă, procesele de trimitere vor fi
suspendat până când dimensiunea tamponului s-a micșorat. Limita buffer-ului este pe distribuție
canal. O limită mai mare va oferi o latență mai mică și un randament mai mare pe cheltuială
de utilizare mai mare a memoriei.
+zdntgc timp:
Setați timpul de colectare a gunoiului în tabelul de noduri întârziat (delayed_node_table_gc) în
secunde. Valorile valide sunt fie infinit sau un număr întreg în intervalul [0-100000000].
Valoarea implicită este 60.
Intrările din tabelul de noduri care nu sunt menționate vor rămâne în tabel cel puțin timp de
perioada de timp pe care o determină acest parametru. Persistența previne repetarea
ștergeri și inserări în tabele să nu se producă.
MEDIUL VARIABILE
ERL_CRASH_DUMP:
Dacă emulatorul trebuie să scrie un dump de blocare, valoarea acestei variabile va fi
numele fișierului fișierului de descărcare în caz de accident. Dacă variabila nu este setată, numele accidentului
fișierul dump va fi erl_crash.dump în directorul curent.
ERL_CRASH_DUMP_NICE:
Unix sisteme: Dacă emulatorul trebuie să scrie un dump de blocare, va folosi valoarea lui
această variabilă pentru a seta valoarea plăcută pentru proces, scăzând astfel prioritatea acestuia. The
intervalul admis este de la 1 la 39 (valorile mai mari vor fi înlocuite cu 39). Cel mai inalt
valoarea, 39, va acorda procesului cea mai mică prioritate.
ERL_CRASH_DUMP_SECONDS:
Unix sisteme: Această variabilă oferă numărul de secunde în care va fi emulatorul
permis să-și petreacă scrisul unui crash dump. Când s-a scurs numărul dat de secunde,
emulatorul va fi terminat de un semnal SIGALRM.
Dacă variabila de mediu este nu setat sau este setat la zero secunde,
ERL_CRASH_DUMP_SECONDS=0, sistemul de rulare nici măcar nu va încerca să scrie accidentul
fişier dump. Pur și simplu se va termina.
Dacă variabila de mediu este setată la valori negative, de ex ERL_CRASH_DUMP_SECONDS=-1,
sistemul de execuție va aștepta la nesfârșit pentru scrierea fișierului de descărcare a erorilor.
Această variabilă de mediu este utilizată împreună cu inimă if inimă rulează:
ERL_CRASH_DUMP_SECONDS=0:
Suprimă în întregime scrierea unui fișier dump de blocare, repornind astfel sistemul de rulare
imediat. Aceasta este la fel cu a nu seta variabila de mediu.
ERL_CRASH_DUMP_SECONDS=-1:
Setarea variabilei de mediu la o valoare negativă va determina terminarea
sistemul de rulare să aștepte până când fișierul de descărcare a erorilor a fost scris complet.
ERL_CRASH_DUMP_SECONDS=S:
Va astepta S secunde pentru a finaliza fișierul de descărcare în caz de accident și apoi a termina
sistem de rulare.
ERL_AFLAGS:
Conținutul acestei variabile de mediu va fi adăugat la începutul comenzii
linie pentru Erl.
-suplimentar steag este tratat special. Domeniul său de aplicare se termină la capătul mediului
continut variabil. Argumente în urma unui -suplimentar flag sunt mutate pe linia de comandă
în -suplimentar secțiune, adică sfârșitul liniei de comandă care urmează după un -suplimentar
steag.
ERL_ZFLAGS si ERL_FLAGS:
Conținutul acestor variabile de mediu va fi adăugat la sfârșitul comenzii
linie pentru Erl.
-suplimentar steag este tratat special. Domeniul său de aplicare se termină la capătul mediului
continut variabil. Argumente în urma unui -suplimentar flag sunt mutate pe linia de comandă
în -suplimentar secțiune, adică sfârșitul liniei de comandă care urmează după un -suplimentar
steag.
ERL_LIBS:
Această variabilă de mediu conține o listă de directoare de bibliotecă suplimentare pe care
serverul de cod va căuta aplicații și va adăuga la calea codului. Vedea cod(3erl).
ERL_EPMD_ADDRESS:
Această variabilă de mediu poate fi setată la o listă de adrese IP separate prin virgulă, în
caz în care epmd daemon va asculta numai la adresa (adresele) specificate și pe
adresa de loopback (care este implicit adăugată la listă dacă nu a fost specificată).
ERL_EPMD_PORT:
Această variabilă de mediu poate conține numărul portului de utilizat atunci când comunicați
epmd. Portul implicit va funcționa bine în majoritatea cazurilor. Se poate specifica un alt port
pentru a permite nodurilor de clustere independente să coexiste pe aceeași gazdă. Toate nodurile din a
clusterul trebuie să utilizeze același număr de port epmd.
CONFIGURARE
Sistemul standard Erlang/OTP poate fi reconfigurat pentru a modifica comportamentul implicit
lansare.
.erlang Discovery Fişier:
Când Erlang/OTP este pornit, sistemul caută un fișier numit .erlang în fișierul
directorul în care este pornit Erlang/OTP. Dacă nu este găsit, directorul principal al utilizatorului este
a căutat un fișier .erlang.
Dacă este găsit un fișier .erlang, se presupune că acesta conține expresii Erlang valide. Aceste
expresiile sunt evaluate ca și cum ar fi introduse în shell.
Un fișier .erlang tipic conține un set de căi de căutare, de exemplu:
io:format("executarea profilului utilizatorului în HOME/.erlang\n",[]).
cod:add_path("/home/calvin/test/ebin").
cod:add_path("/home/hobbes/bigappl-1.2/ebin").
io:format(".erlang rc terminat\n",[]).
user_default si shell_default:
Se presupune că funcțiile din shell care nu sunt prefixate de un nume de modul sunt
obiecte funcționale (Funs), funcții încorporate (BIF) sau aparțin modulului
user_default sau shell_default.
Pentru a include comenzi private shell, definiți-le într-un modul user_default și adăugați
următorul argument ca prima linie din fișierul .erlang.
cod:load_abs("..../user_default").
erl:
Dacă conținutul .erlang este modificat și o versiune privată a user_default este
definit, este posibilă personalizarea mediului Erlang/OTP. Schimbări mai puternice
poate fi realizat prin furnizarea de argumente în linia de comandă în scriptul de pornire erl. A se referi la
Erl(1) și înăuntru(3erl) pentru mai multe informații.
Utilizați erl online folosind serviciile onworks.net