Beneficiile de funcții inline în C++?



Ce avantaje/dezavantaje ale utilizării inline funcții în C++? Văd că crește numai performanta pentru codul pe care compilatorul ieșiri, dar astăzi cu's optimizat compilatoare, rapid Procesoare, memorie mare etc. (nu ca în 1980< în cazul în care memoria a fost rare și tot ce a avut pentru a se potrivi în 100KB de memorie) ce avantaje au azi?
Funcții Inline sunt mai repede pentru că don't nevoie pentru a împinge și pop lucrurile pe/de pe stiva ca parametri și adresa expeditorului; cu toate acestea, ea nu face binar putin mai mare. 


Nu se face o diferență semnificativă? Nu destul de vizibil pe hardware-ul modern pentru cele mai multe. Dar se poate face o diferență, ceea ce este suficient pentru unii oameni. 


Marcarea ceva inline nu dă o garanție că acesta va fi inline. L's doar o sugestie pentru compilator. Uneori se's nu este posibil, cum ar fi atunci când aveți un virtual funcție, sau atunci când există recursivitate implicate. Și, uneori, compilatorul alege să nu-l folosească. 


Am putut vedea o situație ca asta face o diferență detectabilă:



```
inline int aplusb_pow2(int a, int b) {
  return (a + b)*(a + b) ;
}

for(int a = 0; a < 900000; ++a)
    for(int b = 0; b < 900000; ++b)
        aplusb_pow2(a, b);
```
faza cu overclocking-ul e ca atunci cand ii este crescut voltajul ii creste si viteza de procesare. insa dezavantajul oc-ului este ca trebuie sa ai un sistem de racire bun. pentru ca overclockingul asa cum ii spune si denumirea, inseamna cresterea performantelor peste limita normala. asta aduce cresterea temperaturilor si a gradului de uzura al componentelor.
recomandat e sa faci overclock pe perioade scurte de timp. si nu ca metoda permanenta pentru imbunatatirea performantelor bai fratilor! c++ nu trebuie sa stii neaparat html si java
c++ este un soft cu acre poti face programe. de exemplu power point e facut cu c++ cu tot cu interfata.
ce sa inveti. si eu sunt pasionat de programare, dorinta e mare.
cu ce te ajuta programarea? ai sanse mai amri sa te angajezi undeva in softwere. depozite de calculatoare sau magazine. sau la un institut de programari. faci programe.
cartea de c++ are in jur de 6-700 de pagini si e complexa. ceea ce ti.ar lua vreo 2 ani sa il cunosti si tot nu ai descoperi complet.

eu iti recomand visual basic. este fratele mai mic a lui c++
mai pe romaneste c++ este un cod
ia visual basic de pe net, varianta 2008 mai precis. e mai bun/
apoi fugi la biblioteca si ia cartea de visual basic 2008.
acolo gasesti instructiuni cum sa faci un program si cum sa programezi.
e mai usor de 10 ori ca c++ si il inveti repede. apoi cand ai invatat asta poti invata si c++ mai repede. o sa ai cunostiintele necesare de programare.
cand te apuci de visual basic trebuie sa stii ce vrei sa faca acel program pe care tu vrei sa il construesti.
tu nu trebuie decat sa respecti cartea.
asta e recomandarea mea. 
bafta. Mă aștept răspunsul real este pur și simplu: nu a fost un bun exemplu de utilizare. Pentru cazuri, avantajul este acela că permite o fluente API asupra tipurilor existente (care nu se furnizează logica) - și anume



```
var foo = data.Where(x=>x.IsActive).OrderBy(x=>x.Price).First();

```

care permite LINQ:



```
var foo = (from x in data
           where x.IsActive
           order by x.Price
           select x).First();

```

Cu metode statice, acest lucru pur și simplu nu este o problemă, astfel încât nu există nici o justificare; doar utiliza metoda statică pe al doilea tip.


Așa cum este, metodele de extensie nu sunt *corect* obiect orientate - ele sunt un abuz pragmatic pentru a face viața mai ușoară în detrimentul purității. Nu a fost nici un motiv pentru a dilua metode statice în același mod. Eu sunt de aceeasi parere cu asexe: un computer depinde de o minte umana ca sa fie alimentat cu informatii si programe. Are viteza de procesare mai mare decat a creierului uman si poate inmagazina mai multe date; dar, daca e adevarata chestia cu utilizarea a doar 10% din capacitatile creierului, la dimensiunile pe care le are... va dati seama ce eficienta presupune asta? Un calculator, daca vrei sa ii cresti performantele, trebuie sa il perfectionezi, sa il miniaturizezi... De fapt, el a fost creat in scopul de a-l ajuta pe om, nu de a-i fi egal (nicidecum superior). Si haideti sa nu ne gandim numai la chestii "tehnice": omul este creativ, in toate sensurile acestui cuvant; un calculator nu va fi in stare sa scrie o poezie, sa picteze un tablou, sa compuna o piesa de teatru sau un concert... nu va fi capabil sa gaseasca solutia cea mai buna intr-un caz de forta majora (daca nu are incarcat programul corespunzator sau daca programatorul nu a intuit necesitatea unei anumite optiuni... face si calculatorul ce poate!). Apoi, un calculator este static si dependent de curent. Eu cred ca ar trebui luate in calcul mai multe aspecte, ca sa putem decide daca ar fi mai "eficient". Probabil ca, la un moment dat, va fi posibila crearea de cyborg-i. Dar noi inca nu suntem capabili sa gasim solutii la probleme cotidiene cu care ne confruntam de multi ani... iar stiinta este in permanenta miscare... Cine stie ce se va mai descoperi? Poate ca va veni ziua in care - vorba lui Iosif - ne vom planta placute in cap, sa ne intensifice activitatea cerebrala; si, atunci, robotii vor fi iarasi devansati... :)  

  

Oricum... ar fi bine ca aceasta inteligenta artificiala sa nu scape de sub controlul omului, ca am putea avea mari belele... Si sa nu imi spuneti ca am vazut prea multe filme SF... lucruri care in urma cu vreo cateva zeci de ani parea de-a dreptul imposibile, azi fac parte din viata celor de gradinita... ;) x86 (32 biti) e pentru maxim 4 gb de memorie, x64 (64 biti) e pentru maxim 128 gb memorie. nu e absolut nici o diferenta de performanta. eu am 4gb si tin versiunea de 32 biti, ocupa spatiu mai putin si booteaza ceva mai repede decat 64 un sistem de operare pe 32 bit nu poate opera cu intreaga memorie ram de 4 gb sau mai mare (3 gb si un pic - la mine sunt 3.17 gb pe un windows7 32 bit). 
ca sa te bucuri de performantele memoriei ram in totalitate, trebuie sa rulezi / instalezi un sistem pe 64 bit, asa cum s-a spus deja.
daca ai placa video integrata (in procesor sau placa de baza), si nu una dedicata / separata, valoarea memoriei cache a placii grafice e preluata tot din memoria ram (difera dupa cum a fost setata de sistem sau utilizator. valori ca 128 mb, 256 mb, 512 mb. 1024 mb etc se pot aloca placii video din memoria ram.) pentru orice din programarea imperativa functiile fac acelasi lucru
input->[functie/black box]->output
https://www.techopedia.com/definition/25615/function

si o sa te contrazic cu o chestie, da e flexibil pythonul pentru ca fiind un limbaj de scripting are avantajele lui, dar puternic? nu prea, pentru ca fiind un limbaj de scripting e greoi fata de c/c++ care sunt limbaje compilate. in opinia mea cel mai puternic limbaj e c++ deoarece poti face o gramada de dracovenii prin el(de la oop la functional programming nu ai treaba) dar lumea fuge de el pentru ca pointeri.

iar chestia cu in python stochezi in liste e asa puerila afirmatia ta, in python pe langa liste mai ai tuple, dictionare sa nu mai spun de alte structuri aflate prin diferite pachete. intel nu face placi video. asta inseamna ca procesorul are grafica integrata, adica nu ai nevoie de placa video, dar poti sa pui una daca vrei. desigur ca nu o sa-ti mearga jocul bine fara placa video. grafica integrata e pentru jocuri vechi sau care nu solicita. daca te referi la wireless si ethernet( retea cu cablu) avantajul wirelessului este mobilitatea si simplitatea adaugarii unui nou user la infrastructura curenta.insa viteza, securitatea sunt in dezavantaj fata de cel cu fir..in primul rand prin cablu se ating viteze de pana la 10gb/sec pe cand viteza maxima suportata de wifi este 300mb/sec.in al 2-lea rand securitatea wifi este mult mai slaba deoarece oricine iti poate intercepta un semnal wifi pe cand prin cablu trebuie sa ai acces la echipamente direct.insa daca esti un utilizator obisnuit care foloseste internetul doar pentru navigare este ok. ccleaner pentru curatare cache, dezinstalare programe, stergere, altceva care sa ti-l faca sa mearga mai bine nu exista :) ( doar minciuni ) upgrade la pc!